- •1. Системы счисления
- •1.1. Позиционные системы счисления
- •1.2. Преобразование чисел из одной системы счисления
- •2. Двоичная арифметика
- •Проверка
- •3. Представление чисел в эвм
- •3.1. Формы представления чисел в эвм
- •Пример Представление чисел в нормализованной форме.
- •3.2. Целые беззнаковые двоичные числа
- •3.3. Целые знаковые двоичные числа
- •3. 4. Коды представления чисел в эвм
- •3.4.1. Прямой код
- •3.4.2. Обратный код
- •3.4.3. Дополнительный код
- •3.4.4. Прямой, обратный и дополнительный коды целых чисел в любой позиционной системе счисления
- •3.5. Сложение и вычитание чисел в обратном и дополнительном двоичных кодах
- •3.5.1. Сложение чисел в дополнительном коде
- •3.5.2. Сложение чисел в обратном коде
- •3.5.3. Расширение знака
- •3.5.4. Вычитание чисел в дополнительном коде
- •3.5. 5. Вычитание чисел в обратном коде
- •3.6.1. Сложение десятичных чисел в дополнительном коде
- •3.6.2. Сложение десятичных чисел в обратном коде
- •3.6.3. Вычитание десятичных чисел в дополнительном коде
- •3.6.4. Вычитание десятичных чисел в обратном коде
- •4. Двоичные коды
- •4.1. Взвешенные коды
- •4.1.1. Десятичное сложение в коде 8421
- •4.1.2. Десятичное вычитание в коде 8421
- •4.2. Невзвешенные коды
- •Пример. Кодовый набор Грея 1101101011 соответствует двоичному числу 1001001101.
- •Пример. Кодовый набор Грея 10111001 соответствует двоичному числу 11010001.
- •5. Обнаружение и исправление ошибок
- •5.1. Коды с обнаружением ошибок
- •5.2. Коды с исправлением ошибок
- •5.2.1. Основные принципы построения кодов Хэмминга с исправлением ошибок
- •5.2.2. Модификация метода четности-нечетности
- •6. Задачи для самостоятельного решения
- •6.1. Задачи для раздела 1
- •6.2. Задачи для раздела 2
- •6.3. Задачи для раздела 3
- •6.4. Задачи для раздела 4
- •6.5. Задачи для раздела 5
- •Литература
- •3.5. Сложение и вычитание чисел в обратном и дополнительном
1.2. Преобразование чисел из одной системы счисления
в другую систему
Пусть N – число в системе с основанием b1, которое требуется представить в системе с основанием b2.
Рассмотрим 2 случая.
1) Метод преобразования состоит в представлении числа (N) b1 в виде многочлена по степеням b1 и вычислении этого многочлена с помощью арифметики по основанию b2.
Пример
Преобразуем число (571.31)8 в число в системе с основанием 10.
210-1-2
(571.31)8 = 5 82+ 7 81+ 1 80+ 3 8-1+ 1 8-2 = (377.390625) 10
Преобразуем число (11001.011)2 в число в системе с основанием 10.
43210 -1-2-3
(11001.011)2 = 1 24+ 1 23+ 0 22+ 0 21+1 20 +0 2-1+ 1 2-2+ 1 2-3=(25.375) 10
Арифметические действия выполняются в системе с основанием 10.
2) В этом случае удобнее воспользоваться арифметикой по основанию b1.
Рассмотрим процедуру преобразования отдельно для целой и дробной частей числа N.
Пусть (N) b1- целое число, значение которого по основанию b2 задается многочленом:
(N) b1= aq-1 b2q-1+ aq-2 b2q-2+ …+ a1 b21+ a0 b20=( aq-1aq-2…a1a 0) b2. (2)
Для нахождения значений ai разделим число (N) b1 на b2:
(N) b1/ b2= aq-1 b2q-2+ aq-2 b2q-3+ …+ a1+ a0/b2. (3)
Q0 -целое
Таким образом, младший разряд (N) b2 , то есть a0, равен первому остатку.
Следующий значащий разряд a1 получается делением частного Q0 на b2:
(Q0/ b2 ) =aq-1 b2q-3+ aq-2 b2q-4+ …+ a1/b2. (4)
Q1 –целое
Остальные ai вычисляются посредством повторного деления остатков до тех пор, пока Qq-1не станет равным 0. Если N - конечное число, то этот процесс должен завершиться.
Правило 1 Для перевода целого числа N по основанию b1 в систему счисления с основанием b2 необходимо последовательно делить исходное число N и образующиеся частные на b2 до получения частного, равного 0. Искомое представление числа N по основанию b2 есть последовательность остатков от операций деления, причем первый остаток дает младшую цифру.
Пример
Преобразовать целое число (501)10 в (?)2
Остаток
Рассмотрим перевод правильных дробей. Пусть (N)b1- дробь, которую необходимо преобразовать в (N)b2. Представим (N)b1 в виде многочлена по основанию b2:
(N)b1= a-1 b2-1+ a-2 b2-2+ a-3b2-3+…+ a-p b2-p (5)
Старшая цифра может быть найдена умножением (5) на b2:
b2 (N)b1= a-1+ a-2 b2-1+ a-3b2-2+…+ a-p b2-p+1 . (6)
дробная часть
Если произведение меньше единицы, то a-1= 0. Если оно больше единицы или равно 0, то a-1 равно целой части произведения. Следующая старшая цифра a-2 определяется путем умножения дробной части указанного выше произведения на b2 и выделения его целой части. Этот процесс может быть бесконечным, так как не всегда можно представить дробь по основанию b2 конечным набором цифр. Процесс в этом случае прекращается по достижении точности.
Правило 2 Для перевода правильной дроби (N)b1 в систему счисления с основанием b2 необходимо последовательно умножать исходную дробь и дробные части получающихся произведений на b2. Искомые цифры искомого представления (N) b2 есть последовательность целых частей произведений, причем первая из них дает старшую цифру a-1.
Пример
Преобразовать правильную дробь (0.567)10 в (?)8
0.567 0.536 0.288 0.304 0.432 0.456
8 8 8 8 8 8
4.536 4.288 2.304 0.432 3.456 3.648
(0.567)10 (0.442033)8
Преобразовать правильную дробь (0.725)10 в (?)8
0.725 0.800 0.400 0.200 0.600 0.800
8 8 8 8 8 8
5.800 6.400 3.200 1.600 4.800 6.400
(0.725)10 = (0.(56314))8
Так как легко оперировать только десятичными числами, то обычно преобразование осуществляется через промежуточную систему счисления: десятичную. Условно это можно представить в виде b1 10 b2.
Рассмотрим элементарные приемы взаимного преобразования чисел, основание системы которых кратно степеням 2.
Таблица 2
b = 21 |
b = 4=22 |
b = 21 |
b = 8=23 |
b = 21 |
b=16=24 |
b = 10 |
00 |
0 |
000 |
0 |
0000 |
0 |
0 |
01 |
1 |
001 |
1 |
0001 |
1 |
1 |
10 |
2 |
010 |
2 |
0010 |
2 |
2 |
11 |
3 |
011 |
3 |
0011 |
3 |
3 |
01 00 |
10 |
100 |
4 |
0100 |
4 |
4 |
01 01 |
11 |
101 |
5 |
0101 |
5 |
5 |
01 10 |
12 |
110 |
6 |
0110 |
6 |
6 |
01 11 |
13 |
111 |
7 |
0111 |
7 |
7 |
10 00 |
20 |
001 000 |
10 |
1000 |
8 |
8 |
10 01 |
21 |
001 001 |
11 |
1001 |
9 |
9 |
10 10 |
22 |
001 010 |
12 |
1010 |
A |
10 |
10 11 |
23 |
001 011 |
13 |
1011 |
B |
11 |
11 00 |
30 |
001 100 |
14 |
1100 |
C |
12 |
11 01 |
31 |
001 101 |
15 |
1101 |
D |
13 |
11 10 |
32 |
001 110 |
16 |
1110 |
E |
14 |
11 11 |
33 |
001 111 |
17 |
1111 |
F |
15 |
01 00 00 |
100 |
010 000 |
20 |
0001 0000 |
10 |
16 |
01 00 01 |
101 |
010 001 |
21 |
0001 0001 |
11 |
17 |
01 00 10 |
102 |
010 010 |
22 |
0001 0010 |
12 |
18 |
01 00 11 |
103 |
010 011 |
23 |
0001 0011 |
13 |
19 |
01 01 00 |
110 |
010 100 |
24 |
0001 0100 |
14 |
20 |
01 01 01 |
111 |
010 101 |
25 |
0001 0101 |
15 |
21 |
01 01 10 |
112 |
010 110 |
26 |
0001 0110 |
16 |
22 |
01 01 11 |
113 |
010 111 |
27 |
0001 0111 |
17 |
23 |
01 10 00 |
120 |
011 000 |
30 |
0001 1000 |
18 |
24 |
Правило 3 Для перевода двоичного числа в систему счисления с основанием b= 2n необходимо исходное число N влево и вправо от запятой сгруппировать по n битов, а затем каждую группу записать одной цифрой в системе счисления с основанием b.
Пример Запишем двоичное число в восьмеричной и шестнадцатеричной системе.
010 110 111.010 1102= 267.268
0001 0110 0111.0101 10002= 167.58H
Дополнение Для перевода числа из системы с основанием b1=2k в систему с основанием b2 = (b1)n необходимо исходное число N влево и вправо от запятой сгруппировать по n битов, а затем каждую группу записать одной цифрой в системе счисления с основанием b2.
Пример
Запишем четверичное число в шестнадцатеричной системе (см. табл.2).
10 32.31 12 104= 4E.D64H.
Запишем двоичное число в четверичной системе
10 11 01 11.01 01 102= 2313.1124.
Правило 4 Для перевода числа N в системе счисления с основанием b=2n в двоичную систему счисления необходимо каждую цифру исходного числа записать в виде эквивалентного ей n-битного двоичного числа.
Пример
Запишем четверичное число в двоичной системе (см. табл. 2)
1032.311214= 1 00 1 0.11 01 11 012.
Запишем шестнадцатеричное число в двоичной системе
4E.D6H=100 1110.1101 01102.
Дополнение Для перевода числа N в системе счисления с основанием b1=(2k)n в систему счисления b2 = 2k необходимо каждую цифру исходного числа записать в виде эквивалентного ей n-битного числа.
Пример
Запишем шестнадцатеричное число в четверичной системе (см. табл.2).
4E.D64H = 10 32.31 12 104.
Запишем четверичное число в двоичной системе
2313.1124= 10 11 01 11.01 01 102.