Тому найпоширенішою для подання чисел у пам'яті комп'ютера є двійкова система числення. Для зображення чисел у цій системі необхідно дві цифри: 0 і 1, тобто достатньо двох стійких станів фізичних елементів. Ця система є близькою до оптимальної за економічністю, і крім того, таблички додавання й множення в цій системі елементарні.
Оскільки 23=8, а 24=16 , то кожних три двійкових розряди зображення числа утворюють один вісімковий, а кожних чотири двійкових розряди - один шістнадцятковий. Тому для скорочення запису адрес та вмісту оперативної пам'яті комп'ютера використовують шістнадцяткову й вісімкову системи числення.
В процесі налагодження програм та в деяких інших ситуаціях у програмуванні актуальною є проблема переведення чисел з однієї позиційної системи числення в іншу. Якщо основа нової системи числення дорівнює деякому степеню старої системи числення, то алгоритм переводу дуже простий: потрібно згрупувати справа наліво розряди в кількості, що дорівнює показнику степеня і замінити цю групу розрядів відповідним символом нової системи числення. Цим алгоритмом зручно користуватися коли потрібно перевести число з двійкової системи числення у вісімкову або шістнадцяткову. Наприклад, 101102=10 110=268, 10111002=101 1100=5C8
у двійковому відбувається за зворотнім правилом: один символ старої системи числення заміняється групою розрядів нової системи числення, в кількості рівній показнику степеня нової системи числення. Наприклад, 4728=100111 010=1001110102, B516=1011 0101=101101012
Як бачимо, якщо основа однієї системи числення дорівнює деякому степеню іншої, то перевід тривіальний. У протилежному випадкові користуються правилами переведення числа з однієї позиційної системи числення в іншу (найчастіше для переведення із двійкової, вісімкової та шістнадцяткової систем числення у десяткову, і навпаки).
Для переведення чисел із системи числення з основою p в систему числення з основою q, використовуючи арифметику нової системи числення з основою q, потрібно записати коефіцієнти розкладу, основи степенів і показники степенів у системі з основою q і виконати всі дії в цій самій системі. Очевидно, що це правило зручне при переведенні до десяткової системи числення.
Наприклад:
з шістнадцяткової в десяткову:
92C816=9*10163+2*10162+C*10161+8*10160=
9*16103+2*16102+12*16101+8*16100=37576
з вісімкової в десяткову:
7358=7*1082+3*1081+5*1080= 7*8102+3*8101+5*8100=47710
з двійкової в десяткову:
1101001012=1*1028+1*1027+0*1026+1*1025+0*1024+0*1023+1*1022+0*1021+1*10
20=1*2108+1*2107+0*2106+1*2105+ 0*2104+0*2103+1*2102+0*2101+ 1*2100=42110
Для переведення чисел із системи числення з основою p в систему числення з основою q з використанням арифметики старої системи числення з основою p потрібно:
- для переведення цілої частини:
o послідовно число, записане в системі основою p ділити на основу нової системи числення, виділяючи остачі. Останні записані у зворотному порядку, будуть утворювати число в новій системі числення;
- для переведення дробової частини:
o послідовно дробову частину множити на основу нової системи числення, виділяючи цілі частини, які й будуть утворювати запис дробової частини числа в новій системі числення.
Цим самим правилом зручно користуватися в разі переведення з десяткової системи числення, тому що її арифметика для нас звичніша.
Приклади переведення чисел у двійкову, вісімкову та шістнадцяткову системи числення.
1.Переведення з десяткової в двійкову систему числення:
2001,100210= 11111010001,000112
для цілої частини:
2001 22000
1 1000 2 10000 500 2
5000
250 125 2 0 1 62 2 62 0 31 2 30 1 15 2 14 1 7 2 6 1 3 21 1
для дробової частини:0, 1002 *2
0 20040 4008
0 8016
1 6022
1 2044
0 4088
0 81761 6352
Перевірка:
для цілої частини:
1024;512;256;128;64;32;16;8;4;2;1.
1 1 1 1 1 0 1 0 0 0 1=2001
для дробової частини:
1/2;1/4;1/8;1/16;1/32;1/64;1/128;1/256
0 0 0 1 1 0 0 1=1/16+1/32+1/256=25/256≈0,0977
похибка для дробової частини:
0,1002-0,0977=0,0025- абсолютна похибка.
0,0025/0,1002*100%≈2,5% - відносна похибка.
2.Переведення з десяткової у вісімкову систему числення:
2001,100210=3721,06323268
для цілої частини:
2001 82000
1 250 8 2482 31 8
2473
для дробової частини:
0, 1002 *8 0 80166 4128
3 3024
2 4192
3 3536
2 8288
6 6304
Перевірка:
для цілої частини:
a0=1; a1=2; a2=7; a3=3; q=8.
a0*q0+a1*q1+a2*q2+a3*q3=1*1+2*8+7*64+3*512=2001.
для дробової частини:
a-1=0; a-2=6; a-3=3; a-4=2;a-5=3; a-6=2; a-7=6; q=8.