Перевод десятичных чисел в недесятичные

Перевод недесятичных чисел в десятичные

 

Осуществляется с использованием формул (1), (3), (4) полиномиального представления.

 

Примеры:

 

Двоичные по формуле (2)

 

I 7 6 5 4 3 2 1 0 -1 -2 -3 -4 -5 -6 -7 -8

11001001, 010100112 = 1·27+1·26+0·25+0·24+1·23+0·22+0·21+1·20,

0·2-1+1·2-2+0·2-3 + 1·2-4+0·2-5+0·2-6+1·2-7+1·2-8=27+26+23+20, 2-2+2-4+2-7+2-8=

128+64+8+1, 0.25+0.0625+0.0078125+0.00390625=201,32421875

 

Для упрощения слагаемые с нулями опускаются. Для дробной части лучше использовать формулу (7). Веса разрядов 2i можно брать из таблицы


 

Веса разрядов двоичных целых чисел

 

i
2i

 

По формуле (7) получаем

 

I 7 6 5 4 3 2 1 0 -1 -2 -3 -4 -5 -6 -7 -8

11001001, 010100112 = 128+64+8+1, (26+24+2+1)/28=201, (64+16+3)/256=201, 83/256=201, 32421875.

 

 

Восьмеричные по формуле (7)

 

Веса разрядов 8-х целых чисел

 

i
8i

 

Пример

 

I 3 2 1 0 -1 -2 -3 -4

i-f 3 2 1 0

1504, 06728 =512+5·64+4, (6·64+7·8+2)/84=836, (384+56+2)/4096=836, 442/4096=836,1079101562

 

Шестнадцатеричные по формуле (7)

 

Веса разрядов 16-х целых чисел

 

i
16i

 

I 3 2 1 0 -1 -2 -3 -4

2A3D,1EC916=2·4096+10·256+3·16+13, (1·163+14·162+12·16+9)/ 65536=

10 13 14 12

10813, (4096+14·256+201)/65536=10813,1202545166015625


 

Правило перевода целого числа (слева от запятой):

Сложить произведения десятичного значения значащих цифр на весовые значения их разрядов.

 

Правило перевода дробного числа (справа от запятой).

Найти десятичное значение целого числа, составленного из цифр дробной части и поделить его на основание СЧ в степени равной числу цифр дробной части (включая нули после запятой).

 

Оба правила подтверждаются примерами.

 

Перевод чисел СЧ с основанием равным степени 2 в друг-друга (2-я, 8-я, 16-я)

 

Перевод двоичного в 8-е (правило триад).

 

Отмечаем группы по три двоичных цифры (триады) для целой части влево от запятой, а для дробной части – вправо от запятой. Если количество цифр дробной части не кратно 3, то она добавляется не достающими нулями справа. Заменяя триады на их десятичные (они же восьмеричные) эквиваленты (по памяти или из таблицы), получаем 8-ю запись числа.

 

Пример

2 6 6 3 0 4

10110110, 011000102 = 010|110|110, 011|000|1002 = 266,3048

 

Перевод двоичного в 16-е (правило тетрад).

 

Отмечаем группы по четыре двоичных цифры (тетрады) для целой части влево от запятой, а для дробной части – вправо от запятой. Если количество цифр дробной части не кратно 4, то она добавляется не достающими нулями справа. Заменяя тетрады на их шестнадцатиричные эквиваленты (по памяти или из таблицы), получаем 16-ю запись числа.

 

Пример

11(B) 6 6 2

10110110, 011000102 = 1011|0110, 0110|00102 = B6,6216


Перевод 8-го в 2-е

 

Заменить в записи 8-е цифры на двоичные триады (по памяти или из таблицы)

 

Пример

 

2 6 6 3 0 4

266,3048 = 010|110|110, 011|000|1002 =10110110, 01100012

 

Перевод 16-го в 2-е

 

Заменить в записи 16-е цифры на двоичные тетрады (по памяти или из таблицы)

 

Пример

11(B) 6 6 2

B6,6216 = 1011|0110, 0110|00102 =10110110, 01100012

 

Перевод 8-го в 16-е

Перевести 8-е в 2-е. Затем перевести 2-е в 16-е.

Пример

 

2 6 6 3 0 4

266,3048 = 010|110|110, 011|000|1002 =10110110, 01100012 =

11(B) 6 6 2

1011|0110, 0110|00102 = B6,6216

 

Перевод16-го в 8-е

Перевести 16-е в 2-е. Затем перевести 2-е в 8-е.

 

Пример

 

11(B) 6 6 2

B6,6216 =1011|0110, 0110|00102 = 10110110, 01100012 =

 

2 6 6 3 0 4

010|110|110, 011|000|1002 = 266,3048

 

 


 

 

1. Перевод целых чисел (целой части числа).

Осуществляется по правилу деления:

Десятичное целое число делиться нацело на основание СЧ q с фиксацией остатка. Затем последовательно частные аналогично делятся с фиксацией остатков. Деление продолжается до тех пор, пока частное не станет равным нулю. Остатки, записанные в обратном порядке (с последнего до первого) представляют число в новой СЧ. Для 16-й СЧ необходимо перед записью заменить остатки от 10 до 15 на их буквенные эквиваленты A,…, F. Числа от 0 до 15 можно переводить с использованием таблицы (или по памяти) не прибегая к делению.

 

Пример. Перевод числа 795

 

В двоичную в столбик

 

795| 2

-794| 397| 2

1|-396| 198| 2

1|-198| 99| 2

0| -98| 49| 2

1| -48| 24| 2

1|-24| 12| 2

0| -12| 6| 2

0| -6| 3| 2

0| -2| 1| 2

1| -0| 0

Записываем остатки в обратном порядке и проверяем

 

512 256 128 64 32 16 8 4 2 1

795 = 1 1 0 0 0 1 1 0 1 12 = 512+256+16+8+2+1=795 (верно!).


 

В строчку

 

795:2=397 | 1

397:2=198 | 1

198:2= 99 | 0

99:2= 49 | 1

49:2= 24 | 1

24:2= 12 | 0

12:2= 6 | 0

6:2= 3 | 0

3:2= 1 | 1

1:2= 0 | 1

 

Правило образования остатка. Усли делимое нечетное, то остаток 1.

Если четное, то 0.

 

Записываем остатки снизу-вверх

795 = 1 1 0 0 0 1 1 0 1 12 = 512+256+16+8+2+1=795 (верно!).

 

Учитывая, что запись в строчку компактнее, деление в столбик применять не будем.

 

В восьмеричную в строчку

 

795:8=99 | 3

99:8=12 | 3

12:8= 1 | 4

1:8= 0 | 1

512 64 8 1

795=14338= 1·512+4·64+3·8+3·1= 512+256+24+3=795

 

В 16-ю в строчку

 

795:16=49 | 11 (B)

49:16= 3 | 1

3:16 = 0 | 3
256 16 1

795=31B16 = 3·256+1·16+11=768+16+11=795 (верно!).

 

Десятичные в двоичные можно перевести двойным переводом. Вначале перевести в восьмеричную или 16-ю. А потом заменить цифры из таблицы (или по памяти).

 

Пример

1 4 3 3

795=14338=1|100|011|011

 

3 1 B (11)

795=31B16 =11|0001|1011

 

2. Перевод дробных чисел (дробной части числа).

 

Первый способ

По правилу умножения на основание СЧ:

Десятичная дробь множиться на основание СЧ q с фиксацией целой части произведения. Затем дробная часть произведения аналогично множиться с фиксацией целой части произведения, и. т.д. Умножение продолжается столько раз, сколько цифр после запятой надо получить. Целые части произведений, записанные после запятой в порядке получения, представляют дробное число в новой СЧ. Для 16-й СЧ необходимо перед записью заменить целые части произведений от 10 до 15 на их буквенные эквиваленты A,…, F. Чтобы повысить точность представления дроби можно получить на одну цифру больше чем требуется и округлить дробь, т.е. добавить к предыдущей цифре 1, если дополнительная цифра больше либо равна q.

 

 

Пример

Перевести 0,15637 в двоичное с 8-ю цифрами после запятой

 

1) 0,15637·2=0,31274

2) 0,31274·2=0,62548

3) 0,62548·2=1,25096

4) 0,25096·2=0,50192

5) 0,50192·2=1,00384

6) 0,00384·2=0,00768

7) 0,00768·2=0,01536

8) 0,01536·2=0,03072

9) 0,03072·2=0,06144

 

Получили 0,15637 = ,0010100002=,001012

16 8 4 2 1

Проверяем ,001012 = , (4+1)/25=5/32=0,15625 ≈0,15637 (верно!)

 

Второй способ

По правилу умножения на основание СЧ в степени числа цифр после запятой:

Десятичная дробь множиться на qf (f-требуемое число цифр после запятой). Затем произведение округляется до ближайшего целого (или не округляется, т.е. берется целая часть). Полученное целое число переводится в q-ичное и размещается в записи после запятой начиная с f –й позиции.

Пример

Перевести 0,15637 в двоичное с 8-ю цифрами после запятой

 

0,15637·28 = 40 = 1010002

0,15637=,001010002=,001012 (совпадает с предыдущим способом)

 

Второй способ не проще. Просто он может быть реализован на калькуляторе программиста.

 

 

Пример из ЛР 2

 

Nж = 31

Х= Nж /70=0,4429 (4 цифры после запятой)

 

Перевод способом умножения на основание

 

0,4429·2=0,8858

0,8858·2=1,7716

0,7716·2=1,5432

0,5432·2=1,0864

0,0864·2=0,1728

0,1728·2=0,3456

0,3456·2=0,6912

0,6912·2=1,3824

0,3824·2=0,7648

0,7648·2=1,5296

0,5296·2=1,0592

0,0592·2=0,1184

 

11 10 9 8 7 6 5 4 3 2 1 0

0,4429=,0111000101102 =, (1024+512+256+16+4+2)/4096=0,442971≈0,4429

 

Пользуемся весами разрядов

i
2i

 

Вторым способом

 

0,4429·212= 1814 = 111000101102

0,4429=,0111000101102 (совпадает с первым способом).