Технический форум

Технический форум (http://www.tehnari.ru/)
-   Форум программистов (http://www.tehnari.ru/f22/)
-   -   Перевести следующие числа из десятичной системы счисления в двоичную (http://www.tehnari.ru/f22/t61649/)

uncoflops 23.12.2011 15:15

Перевести следующие числа из десятичной системы счисления в двоичную
 
а) Перевести следующие числа из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную системы счисления.
360(10); 235(10)
Выполнить вычитание.
1011001001(2) +1100111011(2)
б) Создать программу VBA, реализующую алгоритм получения произведения 7 натуральных чисел.
в) Заполните 6 строк электронной таблицы MS Excel, имеющей следующие поля:
Наименование товара
Цена за единицу
Кол-во проданного товара
Создать программу VBA, рассчитывающую стоимость каждой покупки с учетом 0,5% к каждой покупки.

ОЧЕНЬ нужно плиззз помогите

uncoflops 23.12.2011 15:21

Хотябы как это делать

Ivan 23.12.2011 16:41

Цитата:

Сообщение от uncoflops (Сообщение 639823)
а) Перевести следующие числа из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную системы счисления.
360(10); 235(10)
Выполнить вычитание.
1011001001(2) +1100111011(2)

Это можно сделать на инженерном калькуляторе

AlexZir 23.12.2011 18:49

а) Задание решается несколькими способами, наиболее популярные из них - деление на основание с остатком, методы триад и тетрад и использование развернутой записи числа. Предлагаю третий способ, как, imho, наиболее наглядный :)
360(10)=256+64+32+8=1*2^8+0*2^7+1*2^6+1*2^5+0*2^4+ 1*2^3+0*2^2+0*2^1+0*2^0=101101000(2)
360(10)=256+96+8=1*16^2+6*16^1+8*16^0=168(16)
360(10)=320+40=5*8^2+5*8^1+0*8^0=550(8)

253(10)=128+64+32+16+8+4+1=1*2^7+1*2^6+1*2^5+1*2^4 +1*2^3+1*2^2+1*2^0=11111101(2)
253(10)=240+13=15*16^1+13*16^0=FD(16) - F=15, D=13 :))
253(10)=192+56+5=3*8^2+7*8^1+5*8^0=375(8)

Метод триад продемонстрирую на последнем примере - перевод 253(10) в восьмеричную систему счисления. Метод основан на последовательном переводе в двоичную СС, разбиение полученного двоичного числа на тройки разрядов и преобразование троек двоичных разрядов в соответствии с таблицей соответствия чисел для первых 8 чисел (от 0 до 7).

Как уже выяснили, число 253(10)=11111101(2)
Разбиваем двоичное число 11111101 на тройки разрядов справа налево, недостающие разряды троек слева дополняем незначащими нулями. Получаем ряд троек двоичных разрядов: 011 111 101, каждой из троек соответствует разряд восьмеричного числа.
Максимальное значение тройки будет равно 111, что соответствует цифре 7, при превышении которого происходит переполнение восьмеричного разряда и он обнуляется с переносом единицы в старший разряд.
Если посмотреть по таблице соответствия первых 8 значений в разных СС, то тройке 011 соответствует цифра 3, 111 - цифра 7, 101 - цифра 5, соответственно, записываем эти цифры в порядке следования двоичных триад, получаем восьмеричное число 375(8).

Подобный способ перевода может использоваться и для шестнадцатиричных чисел, только используются четверки двоичных разрядов (тетрады). 16=2^4, максимальное значение тетрады 1111(2)=15=F(16).


Часовой пояс GMT +4, время: 12:35.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.