Электроника:Цифровая электроника/Системы счисления/Сравниваем десятеричные и двоичные числа

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Макаров В. (valemak) Контакты:</br>* Habr: @vakemak</br>* Сайт: www.valemak.com</br>Перевёл статей: 656.
Проверка/Оформление/Редактирование: Мякишев Е.А.


Сравниваем десятеричные и двоичные числа[1]

Давайте посчитаем от нуля до двадцати, используя четыре различных типа систем счисления: хеш-метки, римские цифры, десятеричные и двоичные формы записи:

Числа Хеш-метки Римские
цифры
Десятеричные
цифры
Двоичные
цифры
Ноль Не определено Не определено 0 0
Один I I 1 1
Два II II 2 10
Три III III 3 11
Четыре IIII IV 4 100
Пять IIIII V 5 101
Шесть IIIII I VI 6 110
Семь IIIII II VII 7 111
Восемь IIIII III VIII 8 1000
Девять IIIII IIII IX 9 1001
Десять IIIII IIIII X 10 1010
Одиннадцать IIIII IIIII I XI 11 1011
Двенадцать IIIII IIIII II XII 12 1100
Тринадцать IIIII IIIII III XIII 13 1101
Четырнадцать IIIII IIIII IIII XIV 14 1110
Пятнадцать IIIII IIIII IIIII XV 15 1111
Шестнадцать IIIII IIIII IIIII I XVI 16 10000
Семнадцать IIIII IIIII IIIII II XVII 17 10001
Восемнадцать IIIII IIIII IIIII III XVIII 18 10010
Девятнадцать IIIII IIIII IIIII IIII XIX 19 10011
Двадцать IIIII IIIII IIIII IIIII XX 20 10100

Ни решёточные хеш-метки, ни римские цифры не годятся для обозначения больших чисел. Очевидно, что для этой задачи более эффективны системы счисления с позиционированием, такие как десятеричная и двоичная.

Заметьте, однако, насколько лаконичнее десятеричная запись по сравнению с двоичной при обозначении тех же величин. То, что занимает пять битов в двоичной системе счисления, занимает всего две цифры в десятеричной системе счисления.

Это поднимает интересный вопрос относительно различных систем счисления: насколько большое число может быть представлено при ограниченном количестве позиций? В примитивной системе хэш-меток количество позиций является наибольшим, которое вообще может быть представлено для обозначения числа, поскольку для каждого целочисленного шага требуется одно «хеш-метка-место».

Однако для систем счисления со взвешенными позициями ответ можно найти, взяв основу системы счисления (10 для десятичной, 2 для двоичной) и возведя её в степень числа разрядов.

Например, 5 цифр в десятеричной системе счисления могут представлять 100000 (сто тысяч) различных целочисленных значений от 0 до 99 999 (105 = 100000). 8 битов в двоичной системе счисления могут представлять 256 различных целочисленных значений от 0 до 11111111 (двоичное представление) или от 0 до 255 (десятеричное представление), потому что 28 = 256.

С каждой дополнительной позицией возможность представления чисел увеличивается в разы по основанию (в 10 раз для десятеричного числа, в 2 раза для двоичного). Интересная примечание в тему, касающееся одного из первых электронных цифровых компьютеров ENIAC.

Разработчики ENIAC решили представлять числа в десятеричной форме, в цифровом виде, используя серию схем, называемых «кольцевыми счётчиками», вместо того, чтобы просто использовать двоичную систему счисления (что бы позволило свести к минимуму количество схем, необходимых для представления и вычислений больших величин). Этот подход оказался контрпродуктивным, и с тех пор практически все цифровые компьютеры имели чисто двоичную архитектуру.

Преобразование двоичного числа в десятеричное

Чтобы преобразовать число в двоичной системе счисления в его десятеричный эквивалент, всё, что нужно сделать, так это вычислить сумму всех произведений битов с соответствующими константами весовых коэффициентов. Проиллюстрируем:

Конвертируем 110011012 в десятеричный вид:

Биты 1 1 0 0 1 1 0 1
Веса́ 128 64 32 16 8 4 2 1

Крайний справа бит называется наименьшим значащим битом (обозначается как LSB от англ. Least Significant Bit), потому что он находится в позиции с наименьшим весом (разряд единиц).

Крайний слева бит называется наибольшим значимым битом (обозначается как MSB от англ. Most Significant Bit), потому что он находится в позиции с наибольшим весом для данного числа (разряд ста двадцати восьми).

Помните, что битовое значение «1» означает, что соответствующий вес разряда добавляется к общему значению, а битовое значение «0» означает, что соответствующий вес разряда не добавляется к общему значению. В приведённом выше примере имеем:

12810 + 6410 + 810 + 410 + 110 = 20510

Если нам встречается двоичное число (с разделителем в виде запятой), то это у нас «двоичная запятая», а не десятеричная. Следуем той же процедуре, понимая, что вес каждого места справа от запятой составляет половину значения от веса позиции левее (так же, как вес каждого разряда справа от десятеричной точки составляет одну десятую веса позиции левее). Например:

Конвертируем 100,0112 в десятеричный вид:

Биты 1 0 1 , 0 1 1
Веса́ 4 2 1 ½ ¼

Тогда:

410 + 110 + 0,2510 + 0,12510 = 5,37510

См.также

Внешние ссылки