ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.12.2021
Просмотров: 6675
Скачиваний: 8
6 6 8
Приложение А. Двоичные числа
g 1 1
1
1
1
0
1
0
0
0
1
| 1 х 2
1 0
+ 1 х 2
9
+ 1 х 2
8
+ 1 х 2
7
+ 1 х 2
6
+ 0 х 2
5
+ 1 х 2
4
+ 0 х 2
3
+ 0 х 2
2
+ 0 х 2
1
+ 1 х 2°
8 * 1 0 2 4 + 5 1 2 +256 +128 + 6 4 + 0 +16 + 0 + 0 + 0 + 1
3 7 2 1
.§ З х 8
3
+ 7 х 8
2
+ 2 х 8
1
+ 1 х 8 °
2
m
8
ич
н
н
I
о
I
ат
е
|
ш
3
з-
g
у
ел
о
1536 +
2
2х10
3
н
2000 •*
7
7 х 1 6
2
н
1792 ч
448 +
0
I- 0 х 10
2
+
• 0 +
D
ИЗ х16
1
• 208
16
0
0 х
0
1
+ 1
+ 1
+1
1
10
1
+ 1 х10°
+ 1
х16°
Рис. А.2. Число 2001 в двоичной, восьмеричной и шестнадцатеричнои системе
В таблице АЛ ряд неотрицательных целых чисел представлен в каждой из че-
тырех систем счисления.
Таблица А. 1.
Десятичные числа и их двоичные, восьмеричные
и шестнадцатеричные эквиваленты
Десятичное Двоичное Восьмеричное Шестнадцатеричное
0
1
2
3
4
5
6
7
8
9
10
11
12
13
0
1
10
11
100
101
110
111
1000
1001
1010
1011
1100
1101
0
1
2
3
4
5
6
7
10
11
12
13
14
15
0
1
2
3
4
5
6
7
8
9
А
В
С
D
Преобразование чисел из одной системы счисления в другую 669
Десятичное Двоичное Восьмеричное Шестнадцатеричное
14
15
16
20
30
40
50
60
70
80
90
100
1000
2989
1110
1111
10000
10100
11110
101000
110010
111100
1000110
1010000
1011010
11001000
1111101000
101110101101
16
17
20
24
36
50
62
74
106
120
132
144
1750
5655
Е
F
10
14
1Е
28
32
ЗС
46
50
5А
64
ЗЕ8
BAD
Преобразование чисел из одной
системы счисления в другую
Преобразовывать числа из восьмеричной в шестнадцатеричную или двоичную
систему и обратно легко. Чтобы преобразовать двоичное число в восьмеричное,
нужно разделить его на группы по три бита, причем три бита непосредственно сле-
ва от двоичной запятой формируют одну группу, следующие три бита слева от
этой группы формируют вторую группу и т. д. Каждую группу по три бита можно
преобразовать в один восьмеричный разряд со значением от 0 до 7 (см. первые
строки табл. А.1). Чтобы дополнить группу до трех битов, нужно спереди припи-
сать один или два нуля. Преобразование из восьмеричной системы в двоичную
тоже тривиально. Каждый восьмеричный разряд просто заменяется эквивалент-
ным 3-битным числом. Преобразование из 16-ричной в двоичную систему, по
сути, сходно с преобразованием из 8-ричной в двоичную систему, только каждый
16-ричный разряд соответствует группе из четырех битов, а не из трех. На рис. А.З
приведены примеры преобразований из одной системы в другую.
Преобразование десятичных чисел в двоичные можно совершать двумя разны-
ми способами. Первый способ непосредственно вытекает из определения двоич-
ных чисел. Самая большая степень двойки, меньшая, чем число, вычитается из этого
числа. Та же операция проделывается с полученной разностью. Когда число раз-
ложено по степеням двойки, двоичное число может быть получено следующим
образом. Единички ставятся в тех позициях, которые соответствуют полученным
степеням двойки, а нули — во всех остальных позициях.
Второй способ — деление числа на 2. Частное записывается непосредственно
под исходным числом, а остаток (0 или 1) записывается рядом с частным. То же
670 Приложение А. Двоичные числа
проделывается с полученным частным. Процесс повторяется до тех пор, пока не
останется 0. В результате должны получиться две колонки чисел — частных и ос-
татков. Двоичное число можно считать из колонки остатков снизу вверх. На ри-
сунке А.4 показано, как происходит преобразование из десятичной в двоичную
систему.
Пример 1
1 9 4 ft В fi
Шестнадцатеричное число
Двоичное число 0 0 0 1 1 0 0 1 0 1 0 0 1 0 0 0 . 1 0 1 1 0 1 1 0 0
Восьмеричное число 1 4 5
1
0
.
5
5
4
Пример 2
Шестнадцатеричное число 7 В А 3 . В С 4
Двоичное число 0 1 1 1 1 0 1 1 1 0 1 0 0 0 1 1 . 1 0 1 1 1 1 0 0 0 1 0 0
Восьмеричное число 7 5 6 4 3 . 5
7
0
4
Рис. А.З. Примеры преобразования из 8-ричной системы счисления
в двоичную ииз16-ричнойв двоичную
Двоичные числа можно преобразовывать в десятичные двумя способами. Пер-
вый способ — суммирование степеней двойки, которые соответствуют биту 1 в дво-
ичном числе. Например:
10110=2
4
+2
2
+2'=16+4+2=22
Второй способ. Двоичное число записывается вертикально по одному биту
в строке, крайний левый бит находится внизу. Самая нижняя строка — это строка 1,
затем идет строка 2 и т. д. Десятичное число строится напротив этой колонки. Сна-
чала обозначим строку 1. Элемент строки
п
состоит из удвоенного элемента стро-
ки и-1 плюс бит строки
п
(0 или 1). Элемент, полученный в самой верхней строке,
и будет ответом. Метод проиллюстрирован на рис. А.5.
Преобразование из десятичной в восьмеричную или 16-ричную систему мож-
но выполнить либо путем преобразования сначала в двоичную, а затем в нужную
нам систему, либо путем вычитания степеней 8 или 16.
Отрицательные двоичные числа
На протяжении всей истории цифровых компьютеров для репрезентации отри-
цательных чисел использовались 4 различные системы. Первая из них называет-
ся системой со знаком. В такой системе крайний левый бит — это знаковый бит
(0 — это «+», а 1 — это «-»), а оставшиеся биты показывают абсолютное значе-
ние числа.
Отрицательные двоичные числа
671
Частное
Остаток
1 492
746
373
1 86
93
46
23
1 1
5
2
1
О
1 0 1 1 1 0 1 0 1 0 0 = 1492
10
Рис.
А.4. Преобразование десятичного числа 1492 в двоичное путем последовательного
деления (сверху вниз). Например, 93 делится на 2, получается 46 и остаток 1.
Остаток записывается в строку внизу
1
0
1
1
1
0
1
1
0
1
1
1
1 + 2 х 1499 = 2999
1 + 2 х 749 = 1499
1 + 2 х 374 = 749
0 + 2 х 187 = 374
1 + 2 х 93 = 187
> = 93
1 + 2 х 46 = 93
0 + 2 х 23 = 46
11 =23
11
-»-
1 + 2 х '
-»- 1 + 2 х 5 = '
- ^ 1 + 2 x 2 = 5
->- 0 + 2 х 1 = 2
-»- 1 + 2 х 0 = 1
- Результат
- Начинать
нужно отсюда
Рис.
А.5. Преобразование двоичного числа 101110110111 в десятичное путем последовательного
удваивания снизу вверх. В каждой следующей строке удваивается значение предыдущей строки
и прибавляется соответствующий бит. Например, 374 умножается на 2 и прибавляется бит
соответствующей строки (в данном случае 1). В результате получается 749
6 7 2
Приложение А. Двоичные числа
Во второй системе, которая называется
дополнением до единицы,
тоже при-
сутствует знаковый бит (0 — это плюс, а 1 — это минус). Чтобы сделать число
отрицательным, нужно заменить каждую 1 на 0 и каждый 0 на 1. Это относится
и к знаковому биту. Система дополнения до единицы уже устарела.
Третья система,
дополнение до двух,
содержит знаковый бит (0 — это «+», а 1 —
это «-»). Отрицание числа происходит в два этапа. Сначала каждая единица
меняется на 0, а каждый 0 — на 1 (как и в системе дополнения до единицы). Затем
к полученному результату прибавляется 1. Двоичное сложение происходит точно
так же, как и десятичное, только перенос совершается в том случае, если сумма
больше 1, а не больше 9. Например, рассмотрим преобразование числа 6 в форму
с дополнением до двух:
00000110 (+6);
11111001 (-6 в системе с дополнением до единицы);
11111010 (-6 в системе с дополнением до двух).
Если нужно совершить перенос из крайнего левого бита, он просто отбрасывается.
В четвертой системе, которая для ти-битных чисел называется
excess 2
m
~',
чис-
ло представляется как сумма этого числа и
2
т
~К
Например, для 8-битного числа
(те=8) система называется excess 128, а число сохраняется в виде суммы исходного
числа и 128. Следовательно, -3 превращается в -3+128=125, и это число (-3) пред-
ставляется 8-битным двоичным числом 125 (01111101). Числа от -128 до +127
выражаются числами от 0 до 255 (все их можно записать в виде 8-битного положи-
тельного числа). Отметим, что эта система соответствует системе с дополнением
до двух с обращенным знаковым битом. В таблице А.2 представлены примеры от-
рицательных чисел во всех четырех системах.
Таблица А.2.
Отрицательные 8-битные числа в четырех различных системах
N десятичное
1
2
3
4
5
6
7
8
9
10
20
30
40
50
60
70
80
90
100
127
128
N двоичное
00000001
00000010
00000011
00000100
00000101
00000110
00000111
00001000
00001001
00001010
00010100
00011110
10101000
00110010
00111100
01000110
01010000
01011010
01100100
01111111
Не сущест.
-N в системе
со знаком
10000001
10000010
10000011
10000100
10000101
10000110
10000111
10001000
10001001
10001010
10010100
10011110
10101000
10110010
10111100
11000110
11010000
11011010
11100100
11111111
Не сущест.
-N дополнение
до
единицы
11111110
11111101
11111100
11111011
11111010
11111001
11111000
11110111
11110110
11110101
11101011
11100001
11010111
11001101
11000011
10111001
10101111
10100101
10011011
10000000
Не сущест.
-N дополнение
до двух
11111111
11111110
11111101
11111100
11111011
11111010
11111001
11111000
11110111
11110110
11101100
11100010
11011000
11001110
11000100
10111010
10110000
10100110
10011100
10000001
10000000
-N
excess
128
011111111
01111110
01111101
01111100
01111011
01111010
01111001
01111000
01110111
01110110
01101100
01100010
01011000
01001110
01000100
00111010
00110000
00100110
00011100
00000001
00000000