Электроника:Цифровая электроника/Системы счисления/Сравниваем десятеричные и двоичные числа: различия между версиями
Valemak (обсуждение | вклад) (Новая страница: «{{Панель управления/Электроника}} {{Перевод от valemak}} {{Myagkij-редактор}} =Сравниваем десятери...») |
Valemak (обсуждение | вклад) Нет описания правки |
||
Строка 23: | Строка 23: | ||
| Пять || IIIII || V || 5 || 101 | | Пять || IIIII || V || 5 || 101 | ||
|- | |- | ||
| Шесть || | | Шесть || <strike>IIIII</strike> I || VI || 6 || 110 | ||
|- | |- | ||
| Семь || IIIII II || VII || 7 || 111 | | Семь || IIIII II || VII || 7 || 111 |
Версия от 05:28, 2 ноября 2021
Сравниваем десятеричные и двоичные числа[1]
Давайте посчитаем от нуля до двадцати, используя четыре различных типа систем счисления: хеш-метки, римские цифры, десятеричные и двоичные формы записи:
Числа | Хеш-метки | Римские цифры |
Десятеричные цифры |
Двоичные цифры |
---|---|---|---|---|
Ноль | Не определено | Не определено | 0 | 0 |
Один | I | I | 1 | 1 |
Два | II | II | 2 | 10 |
Три | III | III | 3 | 11 |
Четыре | IIII | IV | 4 | 100 |
Пять | IIIII | V | 5 | 101 |
Шесть | 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
См.также
Внешние ссылки