Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛБ_МП.doc
Скачиваний:
13
Добавлен:
01.04.2025
Размер:
2 Мб
Скачать
☆

1.1.2. Перевод чисел из одной формы в другую.

Основания восьмеричной и шестнадцатеричной систем счисления выражаются целой степенью двух (8=23; 16=24). Этим объясняется простота преобразования чисел между этими системами и двоичной системой счисления.

Для перевода чисел из восьмеричной системы счисления в двоичную достаточно каждую цифру восьмеричного числа заменить соответствующим 3-разрядным двоичным числом. Например:

735,248 →

111 011 101 , 010 1002

7 3 5 2 4

Перевод в двоичную систему счисления шестнадцатеричных чисел достигается заменой цифр шестнадцатеричного представления 4-разрядными двоичными числами. Например:

А3В,С916 →

1010 0011 1011 , 1100 10012

А 3 В С 9

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

Большую сложность представляет перевод чисел между десятичной и другими системами счисления. Метод, используемый для такого перевода, не зависит от того, в какой системе счисления представлены числа и производится путем выполнения операций над десятичными числами. Этот метод имеет следующий вид:

(…n3n2n1n0,n-1n-2…)R →

(…+ n3*R3 + n2*R2 + n1*R1 + n0 , n1*R-1 + n2*R-2 …)10

Для простоты выкладок будем в дальнейшем рассматривать перевод чисел между шестнадцатеричной и десятичной системами счисления.

Пусть требуется перевести число из шестнадцатеричной в десятичную систему счисления. В качестве примера выберем число 9A5F,C83B16. Учитывая веса разрядов шестнадцатеричной системы счисления, запишем значение этого числа в десятичной системе счисления:

9A5F,C83B16 = (9*163 + 10*162 + 5*161 + 15 , 12*16-1 +8*16-2 + 3*16-3 +B*16-4)10 ≈

≈ 39519,782150210

При этом целая часть числа преобразуется точно, а дробная часть — приближенно. В приведенном примере вычисления при нахождении дробной части выполнялись с точностью, определяемой семью десятичными разрядами.

Рассмотрим обратный перевод чисел из десятичной в шестнадцатеричную систему счисления. Воспользуемся приведенным выше примером. Теперь будем считать заданным десятичное число 39519,782150210 и будем искать его представление в шестнадцатеричной системе счисления. Рассмотрим преобразование целой части числа. Из равенства можно вывести следующее правило получения цифр шестнадцатеричного представления. Деление правой части равенства (т. е. целой части заданного числа) на 16 дает в частном целое значение и в остатке 15 (т. е. F); деление полученного частного на 16 даст следующее частное и остаток 5; деление последнего частного приведет к частному 9 и остатку 10 (т. е. А). Таким образом, последовательно деля на 16 целую части десятичного числа и образующиеся частные, получаем в последнем частном и остатках цифры всех разрядов шестнадцатеричного представления целой части числа. Покажем эти действия по преобразованию десятичного числа в шестнадцатеричную систему счисления:

39519

16

39504

2469

16

15

2464

154

16

5

144

9

10

Теперь рассмотрим преобразование дробной части десятичного числа в шестнадцатеричную систему счисления. Из равенства

0,782150210 =12*16-1 +8*16-2 + 3*16-3 +B*16-4

следует, что для получения цифр разрядов дробной части шестнадцатеричного числа (0,С83В1в) необходимо последовательно умножать на 16 дробную часть исходного десятичного числа и дробные части образующихся произведений. При этом целые части этих произведений являются цифрами шестнадцатеричного представления:

0,7821502

16

С →

12,5144032

16

8 →

8,2304512

16

3 →

3,6872192

16

А →

10,9955072

16

F →

15,9281152

16

E →

14,8498432

…

Таким образом, 0,782150210 = 0,C83AFE ...16 ≈ 0,С83ВFE…16.