Двоично-десятичный код
Содержание
- 1 Об этой статье
- 2 Определение
- 3 Об этой статье
- 4 ПРИБЛИЖЕНИЯ
- 5 Дроби и десятичные числа
- 6 ДВОИЧНОЕ УМНОЖЕНИЕ
- 7 Другие системы кодирования
- 8 Описание
- 9 Преимущества и недостатки
- 10 Перевод чисел из одной системы счисления в другую
- 10.1 Перевод чисел из любой системы счисления в десятичную систему счисления
- 10.2 Перевод чисел из десятичной системы счисления в другую систему счисления
- 10.3 Перевод целой части числа из десятичной системы счисления в другую систему счисления
- 10.4 Перевод дробной части числа из десятичной системы счисления в другую систему счисления
- 11 Вавилонская шестидесятеричная система счисления.
- 12 Другие системы кодирования
- 13 Магические числа. Что с ними не так?
- 14 Преимущества и недостатки
- 15 Как перевести из десятичной системы в шестнадцатеричную
- 16 Единичная система счисления.
Об этой статье
wikiHow работает по принципу вики, а это значит, что многие наши статьи написаны несколькими авторами. При создании этой статьи над ее редактированием и улучшением работали, в том числе анонимно, 21 человек(а). Количество просмотров этой статьи: 218 259.
Категории: Математика
English:Convert Hexadecimal to Binary or Decimal
Español:convertir un número hexadecimal a decimal o binario
Italiano:Convertire un Numero Esadecimale in Binario o Decimale
Português:Converter Hexadecimal para Binário ou Decimal
Français:convertir un nombre hexadécimal en nombre binaire ou en nombre décimal
Deutsch:Hexadezimalzahlen in Binär oder Dezimalzahlen umwandeln
中文:将十六进制换算为二进制和十进制
Bahasa Indonesia:Mengkonversi Heksadesimal Menjadi Biner atau Desimal
Nederlands:Hexadecimale getallen omzetten naar decimale getallen
한국어:16진수를 2진수와 10진수로 변환하는 법
ไทย:แปลงเลขฐานสิบหกเป็นเลขฐานสองหรือฐานสิบ
العربية:التحويل من النظام الستة عشري إلى النظام الثنائي أو العشري
हिन्दी:हेक्साडेसिमल को बाइनरी या डेसिमल में बदलें (Convert Hexadecimal to Binary or Decimal)
Печать
Определение
Один десятичный разряд в десятичной системе счисления иногда называют декадой. В цифровой электронике одному десятичному разряду десятичной системы счисления соответствует один десятичный триггер.
Целое число x в десятичной системе счисления представляется в виде конечной линейной комбинации степеней числа 10:
- x=±∑k=n−1ak10k{\displaystyle x=\pm \sum _{k=0}^{n-1}a_{k}10^{k}}, где ak{\displaystyle \ a_{k}} — это целые числа, называемые цифрами, удовлетворяющие неравенству ≤ak≤9.{\displaystyle 0\leq a_{k}\leq 9.}
Обычно для ненулевого числа x требуют, чтобы старшая цифра an−1{\displaystyle a_{n-1}} в десятичном представлении x была также ненулевой.
Например, число сто три представляется в десятичной системе счисления в виде:
- 103=1⋅102+⋅101+3⋅10.{\displaystyle 103=1\cdot 10^{2}+0\cdot 10^{1}+3\cdot 10^{0}.}
С помощью n позиций в десятичной системе счисления можно записать целые числа от 0 до 10n−1{\displaystyle 10^{n}-1}, то есть, всего 10n{\displaystyle 10^{n}} различных чисел.
Дробные числа записываются в виде строки цифр с разделителем десятичная запятая, называемой десятичной дробью:
- an−1an−2…a1a,a−1a−2…a−(m−1)a−m=∑k=−mn−1ak10k,{\displaystyle a_{n-1}a_{n-2}\dots a_{1}a_{0},a_{-1}a_{-2}\dots a_{-(m-1)}a_{-m}=\sum _{k=-m}^{n-1}a_{k}10^{k},}
где n — число разрядов целой части числа, m — число разрядов дробной части числа.
Двоично-десятичное кодирование
В двоичных компьютерах применяют двоично-десятичное кодирование десятичных цифр, при этом для одной двоично-десятичной цифры отводится четыре двоичных разряда (двоичная тетрада). Двоично-десятичные числа требуют большего количества битов для своего хранения. Так, четыре двоичных разряда имеют 16 состояний, и при двоично-десятичном кодировании 6 из 16 состояний двоичной тетрады не используются.
Таблица сложения в десятичной системе счисления
+ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ||
1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
2 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
3 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
4 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
5 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
6 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
7 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
8 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
9 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
10 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
Таблица умножения в десятичной системе
× | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
2 | 2 | 4 | 6 | 8 | 10 | 12 | 14 | 16 | 18 | 20 |
3 | 3 | 6 | 9 | 12 | 15 | 18 | 21 | 24 | 27 | 30 |
4 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | 32 | 36 | 40 |
5 | 5 | 10 | 15 | 20 | 25 | 30 | 35 | 40 | 45 | 50 |
6 | 6 | 12 | 18 | 24 | 30 | 36 | 42 | 48 | 54 | 60 |
7 | 7 | 14 | 21 | 28 | 35 | 42 | 49 | 56 | 63 | 70 |
8 | 8 | 16 | 24 | 32 | 40 | 48 | 56 | 64 | 72 | 80 |
9 | 9 | 18 | 27 | 36 | 45 | 54 | 63 | 72 | 81 | 90 |
10 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 |
Об этой статье
Соавтор(ы):
Штатный редактор wikiHow
В создании этой статьи участвовала наша опытная команда редакторов и исследователей, которые проверили ее на точность и полноту. wikiHow тщательно следит за работой редакторов, чтобы гарантировать соответствие каждой статьи нашим высоким стандартам качества. Количество просмотров этой статьи: 11 670.
Категории: Образование и коммуникации
English:Count in Binary
Português:Contar Usando Números Binários
Italiano:Contare in Binario
Español:contar en binario
Français:compter en binaire
Nederlands:Binair tellen
Bahasa Indonesia:Menghitung Bilangan Biner
العربية:العد بالنظام الثنائي
Печать
ПРИБЛИЖЕНИЯ
Обратите внимание, что каждое «место» в десятичной системе дает лучшее приближение к квадратному корню из 3. Чтобы проверить это, посмотрите, как возведение в квадрат извлаченного корня приблизит вас к значенbю, с которого вы извлекали корень: 3.. На первом месте 1, что в квадрате даст только 1 — ошибка на 2 единицы по сравнению с истинным значением — 3
Если бы использовалось 2, ответ был бы точнее: квадрат 2 это 4 — ошибка только на 1. Но наше правило, приведенное внизу, остается верным
На первом месте 1, что в квадрате даст только 1 — ошибка на 2 единицы по сравнению с истинным значением — 3. Если бы использовалось 2, ответ был бы точнее: квадрат 2 это 4 — ошибка только на 1. Но наше правило, приведенное внизу, остается верным.
Второе «место» дает более точный результат. Квадрат 1.7 равен 2.89, что уменьшает ошибку до 0.11. Третье «место», 1.73 в квадрате дает 2.9929 — ошибка в 0.0071. Четвертое место, 1.732 еще ближе к истине, так как это число, возведенное в квадрат дает 2.999824 — ошибка в 0.000176.
Дроби в расширенных системах счисления
Если вы использовали семеричную сисему, дробь 1/7 была бы 0.1 — полностью точным с только одной цифрой после запятой (не десятичной запятой, если эта система семеричная). В десятичной системе дробь, что получается в результате деления на 7, не является такой простой.
Дроби и десятичные числа
Эти задачи должны заставить вас задуматься о точности и надежности цифр. Что означает ошибка в одну миллионную? Будете ли Вы использовать (что маловероятно) семеричную систему вместо десятичной, чтобы проверить как точно 1/7?
Порядки величин
Порядки величин начинают собой совершенно новую концепцию в области математики. Чтобы показать другую сторону этой концепции, предположим, что Вам необходимо получить область, состоящую из идеального квадрата. Для получения области более точных размеров, необходимо добавить или вычесть немного к или от обоих измерений. Начиная с квадрата с размерами L в каждом направлении, вы либо добавляете или вычитаете небольшие кусочки S. Изменение площади может проводиться двумя длинными прямоугольниками (размеры L и S) и одного намного меньшего квадрата со стороной S. Чем меньше S по сравнению с L, тем меньше S в квадрате, по сравнению с SL.
Вы можете расширить этот подход к аналогичным изменениям кубического объема. Теперь, начиная с большого куба, имеющего стороны L, необходимо добавить или вычесть 3 плитки с размерами L х L x S, три длинных параллелепипеда с размерами L х S х S, и один маленький куб со стороной S. Если S равно 1/10 от L (или гораздо меньше), то S в кубе составляет 1/1000 от L в кубе.
ДВОИЧНОЕ УМНОЖЕНИЕ
Альтернативное двоичное преобразование
Вот еще один способ преобразования десятичных чисел в двоичные. Он использует таблицу двоичных эквивалентов чисел от 1 до 9 для каждого десятичного места. Для иллюстрации этого способа два числа для деления, приведенного ниже, преобразованы в двоичные (см. таблицы ниже).
Обратите внимание, что двоичные эквиваленты для конкретной цифры не имеют никакого отношения друг к другу — от одной колонки к другой. Вы не можете передвинуть десятичную точку или умножить на десять, как Вы делаете подобный сдвиг в двоичной системе
Я вернусь к тому как калькуляторы или компьютеры справляются с этой проблемой чуть позже.
Деление двоичных чисел
Деление двоичных чисел на самом деле есть повторяющееся вычитание.
37 в двоичной системе 1000001.
Для преобразования двоичного числа обратно в десятичное, используйте вычитание в двоичной системе и применяйте таблицы из предыдущего раздела. Первое вычитание есть двоичное число 100-а, что оставляет 11101. Для двоичного числа 20-ти, что оставляет 1001, вычитается двоичное 9. Работая так через двоичные, после деления 4773 на 37 частное есть 129.
Другие системы кодирования
В системе одна десятичная цифра кодируется 5 битами, из которых 2 бита установлены в 1, а 3 бита — в 0, что даёт ровно 10 комбинаций. Такая система обеспечивает лучшее обнаружение ошибок, поскольку изменение одного бита всегда даст недопустимую комбинацию; также всегда обнаруживаются однонаправленные изменения (несколько изменений 0→1 или 1→0). Кодирование «2 из 5» использовалось в компьютерах серий IBM 7070, IBM 7072 и IBM 7074; также применяется в некоторых странах для маркирования почты штрих-кодом.
позволяют разместить 3 десятичные цифры в 10 битах (210=1024 комбинации, что достаточно для 3 десятичных цифр), причём кодирование устроено так, что преобразование между 10-битным кодом и тремя отдельными десятичными цифрами можно осуществить с помощью простой и быстрой логической схемы. Такое кодирование используется в десятичных числах с плавающей запятой, описанных в стандарте IEEE 754-2008.
Описание
При помощи 4 бит можно закодировать 16 цифр. Из них используются 10. Остальные 6 комбинаций в двоично-десятичном коде являются запрещёнными. Таблица соответствия двоично-десятичного кода и десятичных цифр:
Двоично-десятичный код | Десятичный код | ||
---|---|---|---|
1 | 1 | ||
1 | 2 | ||
1 | 1 | 3 | |
1 | 4 | ||
1 | 1 | 5 | |
1 | 1 | 6 | |
1 | 1 | 1 | 7 |
1 | 8 | ||
1 | 1 | 9 |
Двоично-десятичный код также применяется в телефонной связи. В этом случае кроме десятичных цифр кодируются символы ‘*’ или ‘#’, или любые другие. Для записи этих символов в двоично-десятичном коде используются запрещенные комбинации:
Двоично-десятичный код | Десятичный код | |||
---|---|---|---|---|
1 | 1 | * (звёздочка) | ||
1 | 1 | 1 | # (решётка) | |
1 | 1 | + (плюс) | ||
1 | 1 | 1 | — (минус) | |
1 | 1 | 1 | , (десятичная запятая) | |
1 | 1 | 1 | 1 | Символ гашения |
Преимущества и недостатки
Преимущества
Часы с двоично-десятичной системой индикации. В этих часах каждая колонка отображает десятичное число в двоично-десятичной системе.
- Упрощён вывод чисел на индикацию — вместо последовательного деления на 10 требуется просто вывести на индикацию каждый полубайт. Аналогично, проще ввод данных с цифровой клавиатуры.
- Для дробных чисел (как с фиксированной, так и с плавающей запятой) при переводе в человекочитаемый десятичный формат и наоборот не теряется точность.
- Упрощены умножение и деление на 10, а также округление.
По этим причинам двоично-десятичный формат применяется в калькуляторах — калькулятор в простейших арифметических операциях должен выводить в точности такой же результат, какой подсчитает человек на бумаге.
Недостатки
- Требует больше памяти.
- Усложнены арифметические операции. Так как в 8421-BCD используются только 10 возможных комбинаций 4-х битового поля вместо 16, существуют запрещённые комбинации битов: 1010(1010), 1011(1110), 1100(1210), 1101(1310), 1110(1410) и 1111(1510).
Поэтому, при сложении и вычитании чисел формата 8421-BCD действуют следующие правила:
- При сложении двоично-десятичных чисел каждый раз, когда происходит перенос бита в старший полубайт, необходимо к полубайту, от которого произошёл перенос, добавить корректирующее значение 0110 (= 610 = 1610 — 1010: разница количеств комбинаций полубайта и используемых значений).
- При сложении двоично-десятичных чисел каждый раз, когда встречается недопустимая для полубайта комбинация (число, большее 9), необходимо к каждой недопустимой комбинации добавить корректирующее значение 0110 с разрешением переноса в старшие полубайты.
- При вычитании двоично-десятичных чисел, для каждого полубайта, получившего заём из старшего полубайта, необходимо провести коррекцию, отняв значение 0110.
Пример операции сложения двоично-десятичных чисел:
Требуется: Найти число A = D + C, где D = 3927, C = 4856
Решение:
Представим числа D и C в двоично-десятичной форме:
D = 392710 = 0011 1001 0010 0111BCD
C = 485610 = 0100 1000 0101 0110BCD
Суммируем числа D и С по правилам двоичной арифметики:
* ** 0011 1001 0010 0111 + 0100 1000 0101 0110 ___________________ = 1000 0001 0111 1101 - Двоичная сумма + 0110 0110 - Коррекция ___________________ 1000 0111 1000 0011
‘*’ — тетрада, из которой был перенос в старшую тетраду
‘**’ — тетрада с запрещённой комбинацией битов
В тетраду, помеченную символом *, добавляем шестёрку, так как по правилам двоичной арифметики перенос унёс с собой 16, а по правилам десятичной арифметики должен был унести 10.
В тетраду, помеченную символом **, добавляем шестёрку и разрешаем распространение переноса, так как комбинация битов 1101 (что соответствует десятичному числу 13) является запрещённой.
Перевод чисел из одной системы счисления в другую
Наиболее простым способом перевода числа с одной системы счисления в другую, является перевод числа сначала в десятичную систему счисления, а затем, полученного результата в требуемую систему счисления.
Перевод чисел из любой системы счисления в десятичную систему счисления
Для перевода числа из любой системы счисления в десятичную достаточно пронумеровать его разряды, начиная с нулевого (разряд слева от десятичной точки) аналогично примерам 1 или 2. Найдём сумму произведений цифр числа на основание системы счисления в степени позиции этой цифры:
1. Перевести число в десятичную систему счисления.Решение: = = = Ответ: =
2. Перевести число в десятичную систему счисления.Решение: = = = Ответ: =
Перевод чисел из десятичной системы счисления в другую систему счисления
Для перевода чисел из десятичной системы счисления в другую систему счисления целую и дробную части числа нужно переводить отдельно.
Перевод целой части числа из десятичной системы счисления в другую систему счисления
Целая часть переводится из десятичной системы счисления в другую систему счисления с помощью последовательного деления целой части числа на основание системы счисления до получения целого остатка, меньшего основания системы счисления. Результатом перевода будет являться запись из остатков, начиная с последнего.
3. Перевести число в восьмиричную систему счисления.Решение: 273 / 8 = 34 и остаток 1, 34 / 8 = 4 и остаток 2, 4 меньше 8, поэтому вычисления завершены. Запись из остатков будет иметь следующий вид: 421Проверка: = = = , результат совпал. Значит перевод выполнен правильно.Ответ: =
Рассмотрим перевод правильных десятичных дробей в различные системы счисления.
Перевод дробной части числа из десятичной системы счисления в другую систему счисления
Напомним, правильной десятичной дробью называется вещественное число с нулевой целой частью. Чтобы перевести такое число в систему счисления с основанием N нужно последовательно умножать число на N до тех пор, пока дробная часть не обнулится или же не будет получено требуемое количество разрядов. Если при умножении получается число с целой частью, отличное от нуля, то целая часть дальше не учитывается, так как последовательно заносится в результат.
4. Перевести число в двоичную систему счисления.Решение: (0 — целая часть, которая станет первой цифрой результата), (0 — вторая цифра результата), (1 — третья цифра результата, а так как дробная часть равна нулю, то перевод завершён).Ответ: =
Вавилонская шестидесятеричная система счисления.
В вавилонской системе счисления использовали только 2 символа: “прямой” клин — для единиц и “лежащий” — для десятков. Для определения значения числа нужно изображение числа разбить на разряды справа налево. Новый разряд начинается с появления прямого клина после лежачего. Для примера посмотрим на число 32:
Число 60 и все его степени так же обозначаются прямым клином, что и “1”. Поэтому вавилонская система счисления получила название шестидесятеричной системы счисления.
Все числа от 1 до 59 вавилоняне записывали в десятичной непозиционной системе, а значения больше 59 — в позиционной с основанием 60. Например, число 92:
Запись числа была не конкретной, так как не было цифры, которая обозначала бы нуль. Представление числа 92 могло обозначать не только 92=60+32, но и, например, 3632=3600+32. Для определения абсолютного значения числа они ввели новый символ для обозначения пропущенного шестидесятеричного разряда, что соответствует появлению цифры 0 в записи десятичного числа:
Значит, число 3632 записывают так:
Шестидесятеричная вавилонская система — первая система счисления, которая частично основана на позиционном принципе. Эту систему счисления используют и сейчас, например, для определения времени — час состоит из 60 минут, а минута из 60 секунд.
Другие системы кодирования
В системе одна десятичная цифра кодируется 5 битами, из которых 2 бита установлены в 1, а 3 бита — в 0, что даёт ровно 10 комбинаций. Такая система обеспечивает лучшее обнаружение ошибок, поскольку изменение одного бита всегда даст недопустимую комбинацию; также всегда обнаруживаются однонаправленные изменения (несколько изменений 0→1 или 1→0). Кодирование «2 из 5» использовалось в компьютерах серий IBM 7070, IBM 7072 и IBM 7074; также применяется в некоторых странах для маркирования почты штрих-кодом.
позволяют разместить 3 десятичные цифры в 10 битах (210=1024 комбинации, что достаточно для 3 десятичных цифр), причём кодирование устроено так, что преобразование между 10-битным кодом и тремя отдельными десятичными цифрами можно осуществить с помощью простой и быстрой логической схемы. Такое кодирование используется в десятичных числах с плавающей запятой, описанных в стандарте IEEE 754-2008.
Магические числа. Что с ними не так?
Рассмотрим следующий фрагмент кода:
int maxStudents = numClassrooms * 30;
1 | intmaxStudents=numClassrooms *30; |
В вышеприведенном примере число 30 является магическим числом. Магическое число — это хорошо закодированный литерал (обычно, число) в строчке кода, который не имеет никакого контекста. Что это за 30, что оно означает/обозначает? Хотя из вышеприведенного примера можно догадаться, что число 30 обозначает максимальное количество учеников, находящихся в одном кабинете — в большинстве случаев, это не будет столь очевидным и понятным. В более сложных программах контекст подобных чисел разгадать намного сложнее (если только не будет соответствующих комментариев).
Использование магических чисел является плохой практикой, так как в дополнение к тому, что они не предоставляют никакого контекста (для чего и почему используются), они также могут создавать проблемы, если их значения необходимо будет изменить. Предположим, что школа закупила новые парты. Эта покупка, соответственно, увеличила максимально возможное количество учеников, находящихся в одном кабинете, с 30 до 36 — это нужно будет продумать и отобразить в нашей программе.
Рассмотрим следующий фрагмент кода:
int maxStudents = numClassrooms * 30;
setMax(30);
1 |
intmaxStudents=numClassrooms *30; setMax(30); |
Чтобы обновить число учеников в кабинете, нам нужно изменить значение константы с 30 на 36. Но что делать с вызовом функции setMax(30)? Аргумент 30 и константа 30 в коде, приведенным выше, являются одним и тем же, верно? Если да, то нам нужно будет обновить это значение. Если нет, то нам не следует вообще трогать этот вызов функции. Если же проводить автоматический глобальный поиск и замену числа 30, то можно ненароком изменить и аргумент функции setMax(), в то время, когда его вообще не следовало бы трогать. Поэтому вам придется просмотреть весь код «вручную», в поисках числа 30, а затем, в каждом конкретном случае, определить: изменить ли 30 на 36 или нет. Это может занять очень много времени, кроме того, вероятность возникновения новых ошибок повышается в разы.
К счастью, есть лучший вариант — использовать символьные константы. О них мы поговорим на следующем уроке.
Правило: Старайтесь свести к минимуму использование магических чисел в ваших программах.
Преимущества и недостатки
Преимущества
Часы с двоично-десятичной системой индикации. В этих часах каждая колонка отображает десятичное число в двоично-десятичной системе.
- Упрощён вывод чисел на индикацию — вместо последовательного деления на 10 требуется просто вывести на индикацию каждый полубайт. Аналогично, проще ввод данных с цифровой клавиатуры.
- Для дробных чисел (как с фиксированной, так и с плавающей запятой) при переводе в человекочитаемый десятичный формат и наоборот не теряется точность.
- Упрощены умножение и деление на 10, а также округление.
По этим причинам двоично-десятичный формат применяется в калькуляторах — калькулятор в простейших арифметических операциях должен выводить в точности такой же результат, какой подсчитает человек на бумаге.
Недостатки
- Требует больше памяти.
- Усложнены арифметические операции. Так как в 8421-BCD используются только 10 возможных комбинаций 4-битового поля вместо 16, существуют запрещённые комбинации битов: 1010(1010), 1011(1110), 1100(1210), 1101(1310), 1110(1410) и 1111(1510).
Поэтому, при сложении и вычитании чисел формата 8421-BCD действуют следующие правила:
- При сложении двоично-десятичных чисел каждый раз, когда происходит перенос бита в старший полубайт, необходимо к полубайту, от которого произошёл перенос, добавить корректирующее значение 0110 (= 610 = 1610 — 1010: разница количеств комбинаций полубайта и используемых значений).
- При сложении двоично-десятичных чисел каждый раз, когда встречается недопустимая для полубайта комбинация (число, большее 9), необходимо к каждой недопустимой комбинации добавить корректирующее значение 0110 с разрешением переноса в старшие полубайты.
- При вычитании двоично-десятичных чисел, для каждого полубайта, получившего заём из старшего полубайта, необходимо провести коррекцию, отняв значение 0110.
Пример операции сложения двоично-десятичных чисел:
Требуется: Найти число A = D + C, где D = 3927, C = 4856
Решение:
Представим числа D и C в двоично-десятичной форме:
D = 392710 = 0011 1001 0010 0111BCD
C = 485610 = 0100 1000 0101 0110BCD
Суммируем числа D и С по правилам двоичной арифметики:
* ** 0011 1001 0010 0111 + 0100 1000 0101 0110 ___________________ = 1000 0001 0111 1101 - Двоичная сумма + 0110 0110 - Коррекция ___________________ 1000 0111 1000 0011
‘*’ — тетрада, из которой был перенос в старшую тетраду
‘**’ — тетрада с запрещённой комбинацией битов
В тетраду, помеченную символом *, добавляем шестёрку, так как по правилам двоичной арифметики перенос унёс с собой 16, а по правилам десятичной арифметики должен был унести 10.
В тетраду, помеченную символом **, добавляем шестёрку и разрешаем распространение переноса, так как комбинация битов 1101 (что соответствует десятичному числу 13) является запрещённой.
Как перевести из десятичной системы в шестнадцатеричную
Выше мы уже немного затронули процесс перевода чисел. Теперь мы рассмотрим его подробнее и на примерах.
Но прежде чем начать, надо узнать одну очень важную особенность шестнадцатеричной системы.
Так как система имеет своим основанием число 16, то, следовательно, всего в этой системе имеется 16 цифр, но если первые десять цифр (0-9) вполне привычные для нас, то остальные имеют вид не совсем цифровой, но, тем не менее, являются цифрами, а именно значения A, B, C, D, E, F, которые соответствуют нашим привычным числам с 10 до 15. Все цифры шестнадцатеричной системы и их «аналоги» в десятичной записаны в таблице ниже.
Итак, допустим, у нас есть число 40 563 в десятичной системе счисления. Переведём его в шестнадцатеричную.
- Сначала мы просто делим наше исходное число 40 563 на 16 в столбик. В частном у нас получилось 2 535, если умножить это число на 16, то получится 40 560, а в остатке 3. Эту тройку мы выделяем.
- Теперь мы делим 2 535, и тоже на 16, и тоже абсолютно таким же образом. Частное – 158, 16*158 = 2 528, а в остатке 7. Остаток так же, как и в тот раз, выделяем.
- Делим полученные частные до тех пор, пока они не станут меньше 16, тогда деление заканчивается. Делим 158 на 16, и находим остаток от этого деления.
Остаток от деления – 14, а частное, полученное при делении 158 на 16 равно 9. Так как 9 меньше 16, то процесс вычислений закончен, а 9 также выделяется.
- Процесс преобразования десятичного числа в шестнадцатеричное почти окончен. Для того, чтобы получить его, надо всего лишь выписать выделенные числа справа налево (т.е. в данном случае от девятки к тройке), НО, как мы писали выше, у шестнадцатеричной системы свой особый «алфавит» с 10 по 15. И как раз один из наших «остатков» (число 14) вписывается в этот диапазон, поэтому надо посмотреть в таблице, либо просто самостоятельно посчитать, что в шестнадцатеричной системе 14 будет буквой Е.
Итого весь процесс преобразования приведён на следующем изображении:
Таким образом мы научились переводить числа из десятичной системы в шестнадцатеричную. Теперь давайте попробуем сделать обратное преобразование, но уже с другим числом.
Единичная система счисления.
С первых попыток научиться считать у людей возникла необходимость записи чисел. Сначала это было легко — зарубка либо черточка на любой поверхности отвечала за один предмет. Таким образом возникла первая система счисления — единичная.
Число в единичной системе счисления представляет собой строку из черточек (палочек), количество которых равно значению данного числа. Таким образом, урожай из 100 фиников будет равен числу, состоящему из 100 черточек.
В более позднее время для упрощения восприятия больших чисел, эти знаки стали группировать по три или по пять. Далее равнообъёмные группы знаков начали заменять новым знаком — так возникли прообразы современных цифр.
У данной системы есть значительные недостатки — чем больше число, тем длиннее строка из палочек. Кроме того, существует большая вероятность в записи числа, пропустив или случайно дописав палочку.
Изначально в счете использовали пальцы рук, поэтому первые знаки появились для групп из 5 и 10 штук (единиц). Все это позволило создать более удобные системы записи чисел.