- •Системы счисления. Кодирование двоичных чисел
- •Цель работы
- •Основные положения
- •11011,012; 431,678; А28е,с416
- •Запись первых 20 чисел в системах счисления
- •0.1100 – 0.0111; 1,10100 – 0,00110
- •1.1001 – 1.0010; 0,01001 – 1,01100
- •Двоичные коды десятичных цифр
- •Задание на контрольную работу
- •Оформление контрольной работы
- •Контрольные вопросы
Запись первых 20 чисел в системах счисления
Десятичные |
Двоичные |
Восьмеричные |
Шестнадцатеричные |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
2 |
10 |
2 |
2 |
3 |
11 |
3 |
3 |
4 |
100 |
4 |
4 |
5 |
101 |
5 |
5 |
6 |
110 |
6 |
6 |
7 |
111 |
7 |
7 |
8 |
1000 |
10 |
8 |
9 |
1001 |
11 |
9 |
10 |
1010 |
12 |
A |
11 |
1011 |
13 |
B |
12 |
1100 |
14 |
C |
13 |
1101 |
15 |
D |
14 |
1110 |
16 |
E |
15 |
1111 |
17 |
F |
16 |
10000 |
20 |
10 |
17 |
10001 |
21 |
11 |
18 |
10010 |
22 |
12 |
19 |
10011 |
23 |
13 |
20 |
10100 |
24 |
14 |
2.3. Двоично-восьмеричные и двоично-шестнадцатеричные преобразования
Для преобразования двоичного числа в восьмеричную форму необходимо объединить двоичные цифры в группы по 3 разряда, продвигаясь от разделительной точки (запятой) вправо и влево. При необходимости в начале и в конце исходного числа добавляются нули. Затем каждая группа из 3 разрядов заменяется эквивалентной восьмеричной цифрой. Результат будет восьмеричным представлением исходного двоичного числа.
Пример. Преобразовать двоичное число 11011001,10112 в восьмеричную форму.
11011001,10112 = 011 011 001, 101 1002 > 331,548
3 3 1 5 4
Для преобразования восьмеричного числа в двоичную форму необходимо каждую цифру заменить трехразрядным двоичным числом. При этом незначащие нули отбрасываются.
Пример. Преобразовать восьмеричное число 305,48 в двоичную форму.
305,48 - 011 000 101, 1002 = 11000101,12
3 0 5 4
Для преобразования двоичного числа в шестнадцатеричную форму необходимо объединить двоичные цифры в группы по 4 разряда, продвигаясь от разделительной точки (запятой) вправо и влево. При необходимости в начале и в конце исходного числа добавляются нули. Затем каждая группа из 4 разрядов заменяется эквивалентной шестнадцатеричной цифрой. Результат будет шестнадцатеричным представлением исходного двоичного числа.
Пример. Преобразовать двоичное число 1010111,11011012 в шестнадцатеричную форму:
1010111,11011012 = 0101 0111, 1101 10102 = 57,DA16
5 7 D A
Для преобразования шестнадцатеричного числа в двоичную форму необходимо каждую цифру заменить четырехразрядным двоичным числом. При этом незначащие нули отбрасываются.
Пример. Преобразовать шестнадцатеричное число 2Е5,С16 в двоичную форму:
2Е5,С16 = 0010 1110 0101, 11002 = 1011100101,112
2 Е 5 С
2.4. Двоичная арифметика
Правила сложения двоичных чисел:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10
Правила вычитания двоичных чисел:
0 - 0 = 0
1 - 0 = 1
1 - 1 = 0
10 -1 = 1
Правила умножения двоичных чисел:
0 ∙ 0 = 0
0 ∙ 1 = 0
1 ∙ 0 = 0
1 ∙ 1 = 1
Для сложения двух двоичных чисел необходимо применить правило сложения многократно, отправляясь от пары младших (крайних правых) разрядов, как это делается при десятичном сложении. После сложения пары младших цифр и получения значения младшего разряда суммы складывается следующая пара цифр с учетом переноса из младшего разряда.
Пример:
11 1 1переносы
1011,1012 слагаемое
1110,0012 слагаемое
11001,1102 сумма
Двоичное вычитание обратно двоичному сложению. При вычитании большей цифры из меньшей необходимо произвести "заем" в более старшей соседней позиции. Так, если в позиции n возникает необходимость "заема", то вычитается 1 из (n + 1)-й цифры уменьшаемого, а в позицию n "приносится" величина 2, т.е. основание системы счисления.
Пример:
101 изменение уменьшаемого
… в результате заема
1010,112 уменьшаемое
111,012 вычитаемое
11,102 разность
Умножение двух многоразрядных двоичных чисел проводится аналогично умножению десятичных чисел, т.е. сначала вычисляются частные произведения множимого на отдельные разряды множителя, а затем эти частные произведения суммируются.
Пример:
11,012 множимое
1012 множитель
1101
0000 частные произведения
1101
10000,01 произведение
Двоичное деление также аналогично делению десятичному, т.е. последовательно подбирается очередная искомая цифра частного и на нее умножается делитель, а полученное произведение вычитается из делимого для проверки правильности подобранной цифры.
Пример:
10100000 112 делитель
11 1101012 частное
. .
100
11
10
00
. .
100
11
10
00
. .
100
11
12 остаток
2.5. Кодирование двоичных чисел - это представление двоичных чисел со знаком.
Применяются следующие коды чисел: прямой, обратный, дополнительный. Знак "+" кодируется нулем (0), "-" - единицей (1), которые записываются в дополнительном старшем (знаковом) разряде.
Прямой код двоичного числа получается записью в знаковый разряд 0 для положительных и 1 - для отрицательных чисел.
Пример. Представить дробные двоичные числа
Х1 = +0,10112 , Х2 = -0,010110012 в прямом коде.
[Х1]пр = 0,1011 , [Х2] = 1,01011001.
Пример. Представить целые двоичные числа
В1 = +11010; В2 = -101101 в прямом коде.
[В1]пр = 0.11010 , [В2]пр = 1.101101.
В рассмотренных примерах запятая и точка отделяют знаковые разряды.
Обратный код положительного двоичного числа получается так же, как в прямом коде, т.е.
[X] обр = Xпр, [В] обр = Впр.
Обратный кодотрицательного двоичного числа образуется записью в старшем (знаковом) разряде 1 и заменой в разрядах двоичного числа нулей на единицы, а единиц на нули.
Пример. Представить дробные двоичные числа
Х1 = +0,10012 ; Х2 = -0,01101 в обратном коде.
[Х1]обр = 0,1001 [Х2]обр = 1,10010
Пример. Представить целыечисла
В1= +1110012; В2= -1100110112
[В1]обр = 0.111001; [В2]обр = 1.001100100.
Дополнительный кодотрицательного двоичного числа получается из обратного кода этого числа прибавлением единицы к младшему разряду.
Пример. Представить дробные двоичные числа
Х1= +0,10012; Х2= -0,011012в дополнительном коде
[Х1]доп = 0,1001; [Х2]доп = [Х2]обр + 0,00001;
[Х2]обр = 1,10010;
[Х2]доп = 1,10010
0,00001
1,10011
Пример 2. Представить целые двоичные числа
В1= +1110012; В2= -1100110112
[В1]доп = 0.111001; [В2]доп = [В2]обр+ 0.000000001.
[В2]обр = 1.001100100
[В2]доп = 1.001100100
0.000000001
1.001100101
Представление ±0 в прямом, обратном и дополнительном кодах приведено в табл.2.5.1
Таблица. 2.5.1
Значение |
Прямой код |
Обратный код |
Дополнительный код |
+0 |
0.00…0 |
0.00…0 |
0.00…0 |
-0 |
1.00…0 |
1.11…1 |
0.00…0 |
Неоднозначность представления нуля в обратном коде (см. табл. 2.5.1) является одним из недостатков обратного кода.
2.6. Сложение и вычитание кодированных чисел производится при одинаковом их представлении, для чего числа со знаком перед кодированием выравниваются по числу разрядов добавлением нулей справа (для дробной части) и слева (для целой части) исходных чисел.
Сложение двоичных чисел в прямом коде, когда у слагаемых одинаковые знаки, осуществляется суммированием их модулей по правилам двоичного сложения и присвоением сумме знака слагаемых.
Пример. Выполнить сложение в прямом коде следующих двоичных чисел:
Х1 = +0,0012; Х2 = +0,1102; У1 = -0,01002; У2 = -0,10012;
А1 = +11102; А2 = +11112; В1 = -10002; В2 = -10112.
а) /Х1/ = 0,001 б) /У1/ = 0,0100
/Х2/ = 0,110 /У2/ = 0,1001
/Х1/ + /Х2/ = 0,111 /У1/ + /У2/ = 0,1101
[Х1 + Х2]пр = 0,111 [У1 + У2]пр = 1,1101
в) /А1/ = 1110 г) /В1/ = 1000
/А2/ = 1111 /В2/ = 1011
/А1/ + /Х2/ = 11101 /В1/ + /В2/ = 10011
[А1 + А2]пр = 0.11101 [В1 + В2]пр = 0.111
В связи с громоздкостью реализации операции вычитания в прямом коде ее в вычислительных устройствах не применяют, заменяя операцией сложения с использованием обратного или дополнительного кодов.
Сложение двоичных чисел в дополнительном коде осуществляется суммированием кодов этих чисел по правилам двоичного сложения, разряд за разрядом, включая старшие, знаковые разряды кодов. При этом перенос из знакового разряда отбрасывается, а результат получается в дополнительном коде.
Пример. Выполнить сложение в дополнительном коде следующих двоичных чисел:
Х1 = +0,00112 и У1 = +0,1012; Х2 = +0,01012 и У2 = -0,00112;
Х3 = +0,00112 и У3 = -0,01012; Х4 = -0,00112 и У4 = -0,01012;
А1 = -0112 и В1 = -1102; А2 = +1102 и В2 = -0112;
А3 = -0112 и В3 = -1002.
а) /Х1/доп = 0,0011 б) /Х2/доп = 0,0101
/У1/доп = 0,0101 /У2/доп = 1,1101
[Х1 + У1]доп = 0,1000 [Х2 + У2]доп = 10,001 =
= 0,001
(единица переноса теряется)
в) /Х3/доп = 0,0011 г) /Х4/доп = 1,1101
/У3/доп = 1,1011 /У4/доп = 1,1011
[Х3 + У3]доп = 1,1110 [Х4 + У4]доп = 11,1000 =
= 1,1000
(единица переноса теряется)
д) /А1/доп = 0.011 е) /А2/доп = 0.110
/В1/доп = 1.010 /В2/доп = 1.101
[А1 + В1]доп = 1.101 [А2 + В2]доп = 10.011 =
= 0.011
(единица переноса теряется)
ж) /А3/доп = 1.101
/В3/доп = 1.100
[А3 + В3]доп = 11.001 = 1.001 (единица переноса теряется)
Сложение двоичных чисел в обратном коде осуществляется суммированием кодов слагаемых по правилам двоичного сложения, включая знаковые разряды. При этом перенос из знакового разряда прибавляется к младшему разряду суммы (так называемый циклический перенос), а результат получается в обратном коде.
Пример. Выполнить сложение в обратном коде следующих двоичных чисел:
Х1 = +0,010112 и У1 = -0,101012;
Х2 = +0,101112 и У2 = -0,010102;
А2 = +10012 и В2 = -11102; А2 = -01102 и В2 = -10002;
а) [Х1]обр = 0,001 б) [Х2]обр = 0,0100
[У1]обр = 0,110 [У2]обр = 0,1001
[Х1 + У1]обр = 1,10101 1 0,01100
1 = циклический
перенос
[Х2 + У2]пр = 0,01101
в) [А1]обр = 0.1001 г) [А2]обр = 1.1001
[В1]обр = 1.0001 [А2]обр = 1.0111
[А1 + В1]обр = 1,10101 1 1,0000
1 = циклический
перенос
[А2 + В2]пр = 1.0001
Обращение положительного числа М, имеющего (n - 1)-разрядное представление, - это результат вычисления по формуле qn-1 - 1 - /M/,
где q - основание системы счисления.
(n - 1) - разрядное представление чисел возникает при кодировании отрицательных чисел, когда старший (знаковый) разряд содержит 1.
Относительно обратного кода числа со знаком, обращением называют операцию, состоящую в применении (1) к величинной части кода и в замене значения знакового разряда на противоположное. Для обращения двоичных чисел, представленных в обратном коде, необходимо заменить каждый 0 на 1, а каждую 1 на 0, включая знаковый разряд.
Пример. Получить обращение чисел, представленных в двоичном обратном коде:
[Х]обр = 0,01011; [У]обр = 1,01101;
[А]обр = 0.00101; [В]обр = 1.11001.
Таблица 2.6.1
Обозначение |
Код |
Обращение |
Х |
0,01011 |
1,10100 |
У |
1,01101 |
0,10010 |
А |
0.00101 |
1.11010 |
В |
1.11001 |
|
Дополнение положительного числа М, имеющего (n - 1)-разрядное представление, - это результат вычисления по формуле:
qn-1 - /M/,
Применительно к дополнительному коду взятием дополнения называют операцию, состоящую в применении вычисления (2) с величиной части кода и инвертировании значения знакового разряда. Для получения дополнения двоичных чисел, представленных в дополнительном коде, необходимо сначала выполнить обращение путем замены 0 и 1 в коде соответственно на 1 и 0, а затем прибавить к младшему разряду результата 1.
Пример. Получить дополнение чисел, представленных в двоичном дополнительном коде:
[Х]доп = 0,10110; [У]доп = 1,10001;
[А]доп = 0.10100; [В]доп = 1.11100.
Таблица 2.6.2
Обозначение |
Код |
Обращение |
Дополнение |
Х |
0,10110 |
1,01001 |
1,01010 |
У |
1,10001 |
0,01110 |
0,01111 |
А |
0.10100 |
1.01011 |
1.01100 |
В |
1.11100 |
0.00011 |
0.00100 |
Для вычитания двоичных чисел, представленных в дополнительном коде, необходимо сначала взять дополнение вычитаемого, а затем сложить это дополнение с кодом уменьшаемого.
Пример. Выполнить вычитание для следующих чисел, представленных в двоичном дополнительном коде: