Любое число N в системе счисления с основанием q может быть представлено следующим образом:
,
где n – число целых, а k – дробных разрядов.
Например, число 45,673 может быть записано так:
45,673=
Существуют следующие системы счисления: десятичная, двоичная, шестнадцатеричная и восьмеричная. Наиболее часто используются десятичная, двоичная и шестнадцатеричная.
Двоичная система. Поскольку компьютер может различить только нулевое и единичное состояние бита, то он работает в двоичной системе счисления, т.е. в системе, в которой q=2. Название бита унаследовано от английского “Binary digit” (двоичная цифра). Например, число 110,011 можно представить так:
110,011= =6,375
Позиционные веса в байте для каждого бита представляются следующим образом:
Позиционные веса | ||||||||
Включенные биты |
В двоичной системе справедлива следующая арифметика:
0+0=0
0+1=1
1+1=10
1*1=1
1*0=0
Сумма двух чисел 10010010 и 11110011 будет
+1 0 0 1 0 0 1 0
1 1 1 1 0 0 1 1
11 0 0 0 0 1 0 1
|
|
В этом легко убедиться складывая соответствующие этим двоичным кодам десятичные числа 1464 и 2113.
Для представления десятичного дробного числа в двоичной записи его разбивают на целую и дробную часть.
Целую часть делят на основание q той системы, в которую оно переводится. Деление продолжается до тех пор, пока не получится частное, меньше q. Число в новой системе запишется в виде остатков, причем последнее частное дает цифру старшего разряда.
Дробную часть умножают на основание q новой системы счисления. Искомое число в новой системе получится в виде целых частей полученных произведений.
Перевод числа 6,375 в двоичную систему осуществится следующим образом. Целая часть переводится так:
6:2=3 – остаток 0
3:2=1 – остаток 1
Последнее частное здесь равно 1. Остаток – 1. Следовательно результат будет: 110.
Дробная часть переводится в двоичную запись так:
х0,375
2
х0,750
х1,500
2
х1,000
Следовательно получим 0,011. Окончательный результат 110,011.
Шестнадцатеричная система.
Для удобства представления двоичных данных каждый байт разделяется на две части по четыре бита. Каждые полбайта выражаются соответствующим значением. Поскольку в четырех битах может помещаться и две цифры, то систему счисления расширяют следующим образом: 10=А, 11=В, 12=С, 13=D, 14=Е, 15=F. Таким образом получается система счисления, включающая цифры от 0 до F. Так как таких цифр 16, то такая система называется шестнадцатеричной. Ниже приводится двоичное, десятичное и шестнадцатеричное представление чисел от 0 до 15.
Двоичное | десятичное | шестнадц. | двоичное | десятичное | шестнадц. |
A | |||||
B | |||||
C | |||||
D | |||||
E | |||||
F |
В шестнадцатеричной системе q=16. Тогда шестнадцатеричное число 3FA,EC1 можно представить в виде:
|
|
=768+240+10+0,875+0,046875+
+0,000244=1018,9221.
При переводе десятичных чисел в шестнадцатеричную систему счисления действуют те же самые правила, что и для перевода в двоичную систему счисления. Так, число 625,37 переведется в шестнадцатеричную систему следующим образом. Сначала переводится целая часть числа.
6 2 5 1 6
4 8 3 9 1 6
1 4 5 3 2 2
1 4 4 7
Результат будет: 271. Дробная часть с точностью до второго разряда переведется так:
х0, 3 7
1 6
5, 9 2
х0, 9 2
1 6
14, 72
Результат перевода дробной части 0,5Е.
Окончательный результат 271,5Е.
Для перевода шестнадцатеричных чисел в двоичную систему счисления каждая цифра представляется в четырехбитовом коде. Тогда две цифры будут занимать 1 байт. Например, байт памяти шестнадцатеричного числа CF в двоичном коде будет иметь вид: 11001111.
Часто в памяти ПК пары цифр шестнадцатеричного числа записываются в порядке возрастания разрядности. Например шестнадцатеричное число 6FCAB записывается так: ABFC0600. В этом случае под него выделено четыре байта памяти.
Рассмотрим несколько простых примеров шестнадцатеричной арифметики:
6+4=А, 5+9=E, F+E=1D, FF+1=100.
Для индикации шестнадцатеричного числа в программах непосредственно после числа ставится символ Н, например 37Н или 0x37. Шестнадцатеричное число всегда начинается с десятичной цифры: F1=0F1.
По таким же правилам осуществляются операции перевода, связанные с восьмеричной системой счисления. В двоичной системе восьмеричные числа представляются так:
Перевод восьмеричного числа 657 в десятичную систему осуществляется следующим образом:
=384+40+7=431.
Обратный перевод будет:
4 3 1 8
4 0 5 3 8
3 1 4 8 6
2 4 5
что приводит к результату 657, состоящему из остатков деления и последнего частного, меньшего восьми.
Дробное десятичное число 0,63 переводится так
х0, 6 3
8
х5, 0 4
0, 3 2
И с точностью до второго разряда результат будет 0,50.
Для перевода в двоичную систему восьмеричное число записывается двоичными триадами своих цифр. Например, число 657 будет иметь вид: 110101111. В данном случае разряды двоичного числа расположены в порядке убывания. Этому двоичному числу будет соответствовать десятичное 431. Примерами восьмеричной арифметики являются следующие операции сложения: 6+7=15, 7+7=16, 7+1=10, 7+4=13.