Другие языки программирования и технологии

Напомните, как переводить двоичное число в десятичное?

Ну, т. е. я знаю, необходимо это число представить в виде суммы степеней основания двоичной системы счисления на соответствующие цифры в разрядах двоичного числа, но я уже запуталась, третий час сижу с информатикой.
Мне требуется перевести двоичное число 1101101 в десятичную систему счисления. Получается, в этом числе 8 цифр и 8 разрядов, так? (разряды я посчитала начиная с нулевого, которому соответствует младший бит). В соответствии с уже известным нам правилом представим его в виде суммы степеней с основанием..? 2? В общем, помогите мне.
Поделим по 4 бита для простоты
0110 1101
Переведём в понятные нам числа оба куска. Это 6 и 13. Если глаз ещё не намётан считать в двоичной системе до 15, то достаточно запомнить ряд степеней двоек: 128-64-32-16 -- 8-4-2-1
Остаётся только сложить те числа этого ряда, на позициях которых стоят единицы. Но так как мы поделили число по 4 бита, то обе части считаем как будто они начинаются с нуля. А дальше левую часть просто умножаем на 16 и складываем всё, что получится.
Итак, у нас было 6 и 13, умножаем и складываем: 6*16 + 13 = 109
Почему умножаем именно на 16, тоже легко понять: смещение каждой единицы (да и нуля тоже) влево по разряду — это умножение на два. То есть 0110 переводится в 1100 путём умножением на два, а мы сделали 4 таких сдвига: взяли шестёрку: 0110 и сместили на 4 влево: 0110 0000

Если придётся переводить более длинные числа, то умножать придётся уже на 256 для следующей четвёрки разрядов, на 4096 для следующей и так далее.
Пример:
0110 0110 0110
6, 6 и 6, но каждую шестёрку домножаем на собственный множитель. Это 256, 16 и 1. А дальше складываем.
Константин Ушаков
Константин Ушаков
65 560
Лучший ответ
1101101 = 1 * (2 ^ 6) + 1 * (2 ^ 5) + 0 * (2 ^ 4) + 1 * (2 ^ 3) + 1 * (2 ^ 2) + 0 * (2 ^ 1) + 1 * (2 ^ 0) =
               = 1 * 64 + 1 * 32 + 0 * 16 + 1 * 8 + 1 *4 + 0* 2 + 1*1 = 64 + 32 + 8 + 4 + 1 = 109
Vladimir
Vladimir
16 778
если 8битное то старший бит умножаеш на 2 в 7степени + (...) +нлевой бит умножаеш на 2 в 0 степени, всё это слаживаеш.. ты напомнить просил
пример цбайт
1010 равняется
1х2*3 + 0x2*2+ 1x2*1+ 0x2*0
как то такк
слушай, если я не ошибя.. поставь нравится... я просто со старой тетрадки инфу даю.. вот пригодилась же

11110100=244 ^0
отобрать и разделить !!!

Похожие вопросы