Системы счисления
Для записи информации о количестве объектов используются числа. Числа записываются с использованием особых знаковых сис- тем, которые называются системами счисления. Символы алфавита систем счисления называются цифрами. Различают позиционные и непозиционные системы счисления.
В непозиционных системах значение цифры не зависит от по- ложения в числе. Примером записи чисел в таких системах может служить римская система. В качестве цифр в ней используются неко- торые буквы латинского алфавита. Количество, сопоставленное им, приведено в табл. 1.2.
Таблица 1.2.
Цифры римской системы счисления
|
.Римская цифра |
I |
V |
X |
L |
C |
D |
M |
|
Значение в метрической системе |
1 |
5 |
10 |
50 |
100 |
500 |
1000 |
Число представляется как сумма или разность последователь- ности нужных цифр. Если слева от следующей стоит цифра, соответ- ствующая меньшему количеству, она вычитается, если справа – при- бавляется к числу. Пример:
IIXXX = 10 – 1 – 1 + 10 + 10 = 2810
В позиционных системах количественное значение цифры за- висит от еѐ положения в числе. Обычно при записи числа в позици- онных системах используют арабские цифры. Количество цифр, ко- торое используется при этом, называется основанием системы. Оно определяет, во сколько раз различаются количества, соответствую- щие одинаковым цифрам, стоящим в соседних позициях числа, и ука- зывается нижним индексом после последней цифры числа. Если ос- нование системы, по которой записано число, не указано, по умолча- нию считается, что оно равно десяти.
Количество, соответствующее числу, можно представить в ви- де многочлена по степеням основания. Цифры, из которых составля- ется число, это коэффициенты, на которые надо умножить соответст- вующие степени основания. Первая цифра справа – коэффициент при
нулевой степени основания. Далее справа налево перечисляются ко- эффициенты при первой, второй и т. д. степенях. Примеры:
33310 = 3 * 102 + 3 * 101 +3 * 100;
33312 = 3 * 122 + 3 *121 + 3 * 120 = 3 * 144 + 3 * 12 + 3 = 47110
1F3D16 = 1 * 163 + 15 * 162 + 3 * 161 + 13 * 160 = 799710
378 = 3 * 81 + 7 * 80 = 3110
01102 = 0 * 23 +1 * 22 + 1 * 21 + 0 * 20 = 610
1Кб = 210 байт = 100000000002 байт = 102410 байт
Дробная часть числа раскладывается в многочлен по отрица- тельным степеням основания.
Алгоритмы перевода целого и дробного числа из одной пози- ционной системы в другую различны. Приведем в качестве примера алгоритм перевода целого числа А из привычной для нас системы по основанию 10 в число по основанию k. Для этого надо представить его как многочлен по степеням k (значения всех коэффициентов меньше k):
A = an–1 * kn–1 + an–2 * kn–2 + … a1 * k1 + a0* k0
Коэффициенты при степенях k – это цифры числа Ak, обозна- чающие то же количество в новой системе:
Ak = an–1an–2… a1a0
Для того, чтобы определить их, на первом шаге разделим на- цело число A на k:
A1ц = A / k = an–1 * kn–2 + an–2 * kn–3 + … a1 * k0 .
a0 – остаток от деления – это младшая цифра числа Ak. Теперь разделим нацело число A1ц на k. Аналогично предыдущему получим численные значения остальных коэффициентов.
Применим этот алгоритм для представления числа 33310 в пя- теричной системе. Обозначим операцию деления нацело как div(A; k), где A – делимое, k – делитель:
1) A1ц = div (333; 5) = 66, остаток a0 = 3;
2) A2ц = div (66; 5) = 13, остаток a1 = 1;
3) A3ц = div (13; 5) = 2 , остаток a2 = 3;
4) A4ц = div (2; 5) = 0 , остаток a3 = 2;
5) 33310 = 23135 ;
6) Проверка: 3 * 50 + 1 * 51 + 3 * 52 + 2 * 53 =333
Базовой системой счисления в вычислительной технике явля- ется двоичная система. Так как коды чисел и команд в ней слишком длинные, в документации используют более компактную запись по родственным основаниям: в восьмеричной или шестнадцатеричной системе. В восьмеричной системе для записи числа используются цифры 0, 1, 2,.., 7. В шестнадцатеричной системе арабские цифры 0, 1,2,…, 9 дополняются начальными буквами латинского алфавита.
Из табл. 1.3 видно, что если добавить слева незначащие ноли, то значение каждой цифры восьмеричной системы можно предста- вить тремя, а шестнадцатеричной – четырьмя цифрами двоичной сис- темы.
При переводе числа из двоичной системы в восьмеричную число справа налево разбивают на группы по три разряда, и каждую тройку двоичных цифр заменяют одной восьмеричной. Если в по- следней группе слева осталась только одна или две цифры, ее допол- няют нолями.
Перевод в шестнадцатеричную систему делается аналогично, но двоичное число разбивают на группы по четыре цифры:
![]()
100011111110102 10 001 111 111 0102 217728
100011111110102 10 0011 1111 10102 23FA16
Таблица 1.3.
Таблица соответствия между начальными двоичными, восьмеричными, шестнадцатеричными и десятичными числами:
|
Основание системы счисления |
Вид числа |
|||||||
|
10 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
2 |
0000 |
0001 |
0010 |
0011 |
0100 |
0101 |
0110 |
0111 |
|
8 |
00 |
01 |
02 |
03 |
04 |
05 |
06 |
07 |
|
16 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
10 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
|
2 |
1000 |
1001 |
1010 |
1011 |
1100 |
1101 |
1110 |
1111 |
|
8 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
|
16 |
8 |
9 |
A |
B |
C |
D |
E |
F |
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.