Перевод чисел из десятичной системы в другие
Для перевода чисел, состоящих из целой и дробной частей, из десятичной системы в другие системы, существуют два правила: одно – для перевода целой части числа, а другое – для дробной части.
Для перевода десятичного целого числа в систему с основанием q его надо последовательно делить на основание q (по правилам десятичной системы) до тех пор, пока очередное частное не будет меньше q. Число в системе с основанием q записывается в виде упорядоченной последовательности остатков от деления в порядке, обратном их получению, причем старшей цифрой числа будет последнее частное.
Пример. Переведем число 67 из десятичной системы в двоичную, восьмеричную и шестнадцатеричную системы.
67 2 67 8 67 16
66 33 2 64 8 8 64 4
1 32 16 2 3 8 1 3
1 16 8 2 0
0 8 4 2
0 4 2 2
0 2 1
0
В результате вычислений мы получили представление числа 67(10) в других системах счисления:
67(10) = 1000011(2) = 103(8)= 43(16).
Альтернативный способ перевода основан на использовании следующего правила:
qk = 1 000 … 00
k нулей. Например, 103 = 1 000.
Выпишем несколько первых степеней двойки, восьми и шестнадцати:
21 = 2, 81 = 8. 161 = 16.
22 = 4, 82 = 64. 162 = 256.
23 = 8, 83 = 512.
24 = 16,
25 = 32,
26 =64,
27 = 128,
28 =256,
29 = 512,
210 = 1024.
Пример. Переведем число 153 из десятичной системы в двоичную систему. Представим число 153 как сумму чисел, представляющих собой степени числа два:
153(10) = 128 + 16 + 8 + 1 = 27 + 24 + 23 + 20 = 10011001(2).
При переводе десятичной правильной дроби в систему с основанием q необходимо последовательно умножать эту дробь на основание q (по правилам десятичной системы), отделяя после каждого умножения целую часть произведения. Число в системе с основанием q записывается в виде упорядоченной последовательности целых частей произведений, в порядке их получения.
Число произведений определяется точностью перевода, т.е. сколько цифр после запятой надо иметь в новой системе счисления. Если необходимо иметь k цифр после запятой, то для получения результата без округления необходимо выполнить k умножений. Если необходимо получить результат с округлением, то умножение выполняют k+1 раз и далее производят округление по половине основания, используя последнюю полученную цифру.
Пример. Перевести число 0,453 из десятичной системы в двоичную, восьмеричную и шестнадцатеричную. Точность перевода – три цифры после запятой.
0,453 0,453 0,453
2 8 16
0,906 3,624 7,248
2 8 16
1,812 4,992 3,968
2 8 16
1,624 7,936 15,488
2 8 16
1,248 7,488 7,808
Четвертое умножение выполнено с целью округления результата перевода.
В результате вычислений мы получили представление числа 0,453(10) в других системах счисления:
· без округления - 0,453(10) = 0,011(2) = 0,347(8)= 0,73F(16);
· с округлением - 0,453(10) = 0,100(2) = 0,35(8) =0,74(16)(добавлена 1 к предыдущему разряду).
Представление целых чисел в ЭВМ
Форматом числа называется представление числа в разрядной сетке ЭВМ.
Целые числа в ЭВМ представляются в двух форматах:
· целое без знака;
· целое со знаком.
Диапазон представления целых чисел в формате целое без знака изменяется от 0 до
2n – 1, где n – длина разрядной сетки.
В целых числах со знаком старший разряд числа отводится под знак.
n-1 n-2 … 0
Если число положительное, то в знаковый разряд записывается 1, в противном случае записывается 0.