Правило перевода целых чисел. Для перевода целого числа Np, представленного в системе счисления с основанием P, в систему счисления с основанием q, необходимо данное число делить на основание q (по правилам системы с основанием P) до получения целого остатка, меньшего q. Полученное частное снова необходимо разделить на основание q и т.д., пока последнее частное не станет меньше q. Число Nq в новой системе счисления представится в виде упорядоченной последовательности остатков в порядке, обратном их получения. Причем цифру старшего разряда дает последнее частное.
Пример 1. Перевести десятичное число 15710 в двоичный код, результат проверить.
число | делитель остаток |
2_____________1 (младший разряд) 2_____________0 2_____________1 2_____________1 2_____________1 2_____________0 15710 = 100111012 2_____________0 2_____________1 (старший разряд) |
Проверка: 100111012 = 1×27 + 0×26 + 0×25 +1×24 + 1×23 + 1×22 + 0×21 + 1×20 =
= 128 + 16 + 8 + 4 +1 =15710.
Пример 2. Перевести десятичное число 15710 в восьмеричный код, результаты проверить.
число | делитель остаток |
8_____________5 (младший разряд) 8_____________3 15710 = 2358 8_____________ 2 (старший разряд) |
Проверка: 2358 = 2×82 + 3×81 + 5×80 = 128 + 24 + 5 = 15710.
|
|
Пример 3. Перевести десятичное число 15710 в шестнадцатеричный код, результат проверить.
число | делитель остаток | ||
16_____________13 (младший разряд) 16_____________9 (старший разряд) 15710=9D16 | |||
Проверка: 9D16 = 9×161 + 13×160 = 144 + 13 = 15710.
Для облегчения работы с двоичными кодами желательно знать наизусть десятичные значения чисел 2n от n = 0 до n = 15.
Таблица 2.1
n | |||||||||||||||
2 n |
Правило перевода правильной дроби. Перевод правильной дроби Np, представленной в системе счисления с основанием P, в систему с основанием q заключается в последовательном умножении этой дроби на основание q (по правилам системы счисления с основанием P), причем перемножению подвергаются только дробные части. Дробь Nq в системе счисления с основанием q представится в виде упорядоченной последовательности целых частей произведений в порядке их получения, где цифра старшего разряда является первой цифрой первого произведения. Если требуемая точность перевода есть q - k, то число последовательных произведений равно k.
Пример 1. Перевести десятичную дробь 0.38610 в двоичную систему счисления с точностью до 2-7.
0.3697 0.7394 0.4788 0.9576 0.9152 0.8304 0.6608
´ 2´ 2´ 2 ´ 2´ 2´ 2´ 2
0.7394 1.4788 0.9576 1.9152 1.8304 1.6608 1.3216
направление чтения
Искомое число в двоичном коде будет равно 0.369710 = 0.01011112
Произведем проверку перевода:
0.01011112 = 0×2-1 +1×2-2 +0×2-3 + 1×2-4 +1×2-5 + 1×2-6 + 1×2-7 =0.3671.
|
|
Пример 2. Перевести 0.369710 = в восьмеричный код с точностью q -1.
0.3697 0.7394 0.6608
´ 8´ 8´ 8
2.9576 7.6608 5.2864
направление чтения
Восьмеричный код числа 0.369710 = 0.2758.
Проверка перевода: 0.2758 = 2×8-1 + 7×8-2 + 5×8-3 = 0.369110.
Пример 3. Перевести число 0.369710 в шестнадцатеричный код с точностью q -2.
0.3697 0.7394
´ 16´ _ 16
5.9152 14.6432
направление чтения
Шестнадцатеричный код числа 0.369710 = 0.5E16
Проверка перевода дает: 0.5E16 = 5×16-1 + 14×16-2 =0.367210.
При переводе смешанных чисел необходимо отдельно перевести целую и дробную части, а полученные результаты объединить.
Метод вычитания. На первом шаге определяется старший разряд двоичного числа n для переводимого десятичного числа N0 из условия
2 n +1 > N 0 ³ 2 n
и в этот разряд вписывается единица. Затем из исходного числа N0 вычитается 2 n, и находится первая разность: D N 1 = N 0 – 2 n
Для этой разности находится следующая максимальная степень числа 2 (в порядке убывания), и производится вычитание, а в соответствующий разряд вписывается единица. Эта процедура продолжается до тех пор, пока десятичное число не станет равным нулю. Разряды, в которых отсутствуют единицы, заполняются нулями.
Пример 1. Перевести десятичное число 9910 в двоичный код.
Операция вычитания | 26 | 25 | 24 | 23 | 22 | 21 | 20 | ||
1 | 27 > 99 > 26 = 64, a 6 = 1 | 26 | |||||||
99 – 64 =35, 26 > 36 > 25, a 5 = 1 | 25 | – | – | – | |||||
35 – 32 = 3, 22 > 3 > 21, a 1 = 1 | 21 | 9910 | |||||||
3 – 2 = 1, 1 = 20, a 0 = 1 | 20 |
В итоге имеем 8310 = 10100112.
Перевод дробного десятичного числа выполняется аналогично. Процедура продолжается до получения заданной степени точности.
Пример 2. Перевести дробное десятичное число 0.68910 в двоичный код методом вычитания (с точностью до пяти разрядов). Подбираем первое число 2- n, которое не превышала бы заданное число. Находим первую разность этих чисел и дл неё подбираем новое значение 2- n. Процесс продолжается до получения требуемой точности (погрешности перевода).
Операция вычитания | 2-1 | 2-2 | 2-3 | 2-4 | 2-5 | |||
1 | 0.689 – 2-1= 0.189 2-1= 0.500 | а 1 = 1 | 2-1 | |||||
0.189 – 2-3 = 0.064,2-3= 0.125 | а 2 = 1 | 2-2 | ||||||
0.084 – 2-4= 0.0015, 2-4= 0.0625 | а 3 = 1 | 2-3 | 0,687510 | |||||
0.0015 – остаток 2-5= 0.03125 | а 4 = 1 | 2-4 |
Подобным образом переводятся десятичные числа в восьмеричный и шестнадцатеричный коды.
Перевод чисел из восьмеричной, шестнадцатеричной системы счисления и обратно. Для перевода числа из восьмеричной системы счисления в двоичную каждую цифру этого числа необходимо записать трехразрядным двоичным числом (триадой). При этом восьмерично - двоичный код совпадает с двоичным.
Пример 3. (235.275)8 = 010 011 101. 010 111 1018-2 = 10011101.0101111012
210 310 510 210 710 510
Для перевода числа из двоичной системы счисления в восьмеричную необходимо разбить это число вправо и влево от запятой на триады и записать каждую группу цифрой в восьмеричной системе. Крайние неполные триады дополняются нулями.
Пример 4. 10101.01112 = 010 101. 011 1008-2 = 25.348
210 510 310 410
Для перевода числа из шестнадцатеричной системы счисления в двоичную необходимо каждую цифру этого числа записать тетрадой, при этом шестнадцатерично-двоичный код совпадает с двоичным, поскольку 16 = 24.
Пример 5. 9D.5E16 = 1001 1101. 0101 111016-2 = 10011101.01011112.
910 1310 510 1410
Для перевода числа из двоичной системы счисления в шестнадцатеричную необходимо разбить это число вправо и влево от запятой на тетрады и каждую тетраду представить шестнадцатеричной цифрой.
Пример 6. 111100.101012 = 0111 1100. 1010 100016-2 = 7C.A816
710 1210 1010 810
Основными недостатками двоичной системы счисления являются большая длина разрядной сетки по сравнению с другими системами счисления, необходимость перевода исходных числовых данных из десятичной системы счисления в двоичную, а результатов решения - из двоичной в десятичную.
|
|
Двоично - десятичная система счисления BD (Binary Decimals) имеет основание d = 10, и каждая цифра (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) изображается в этой системе счисления четырехразрядным двоичным числом, называемым тетрадой. Она используется в ЭВМ не только в качестве вспомогательной системы счисления при вводе и выводе данных, но и в качестве основной при решении задач, когда в ЭВМ вводится и выводится большое количество чисел, а вычислений над ними производится мало. Десятичные числа в двоично-десятичной системе счисления кодируются в прямом нормально-взвешанном коде 8-4-2-1, т.е. каждую цифру десятичного числа необходимо заменить соответствующей тетрадой двоичных чисел.
Для перевода десятичного числа в двоично-десятичный код, десятичный символ следует заменить его двоичным изображением в виде тетрады.
Пример 7. 91.3710 = 1001 0001. 0011 11112-10
910 110 310 710
Для перевода двоично-десятичного числа в десятичное необходимо исходный код разбить на тетрады вправо и влево от запятой (неполные тетрады дополнить нулями) и заменить полученные тетрады соответствующими десятичными символами.
Пример 8. 11001.001112-10 = 0001 1001. 0011 1000 = 19.3810
110 910 310 810
В таблице 2.2 приведены изображения десятичных чисел 0...20 в двоичном, восьмеричном и шестнадцатеричном кодах.
Таблица 2.2
Десятичное число | Двоичный код | Восьмеричный код | Шестнадцатеричный код |
A | |||
B | |||
C | |||
D | |||
E | |||
F | |||
Наряду с этим кодом при двоичном кодировании десятичных цифр используются другие коды, наиболее употребляемые приведены в таблице 2.3.
Таблица 2.3
Десятичная | Двоичное кодирование десятичной цифры | |||||
цифра | код | код | Код | код 2 из 5 | код с избыт. 6 | код с избыт. 3 |
Код 7421 отличается тем, что любая кодовая комбинация содержит не более двух единиц. В коде 2 из 5 все кодовые комбинации содержат только две единицы из пяти. Это свойство используется для выявления ошибок в кодовых комбинациях (любое отклонение от этого указывает на ошибку).
|
|
При выполнении арифметических операций широко используется самодополняющиеся коды, инверсия двоичных цифр, в которых дает дополнение до 9. Таким свойством обладают код 2421, код с избытком 3, код с избытком 6. Например, в коде с избытком 6 цифре 0 соответствует кодовая комбинация 0110, ее инверсия 1001 соответствует цифре 9 (в коде 8-4-2-1), сумма этих чисел 0 и 9 дает 9 (1111) и т.д.