- •«Микропроцессорные информационно-управляющие системы на железнодорожном транспорте»
- •Форматы представления чисел в цифровой технике
- •Основные теоретические сведения
- •Определения и понятия в системах счисления
- •Двоичная система счисления
- •Восьмеричная система счисления
- •Шестнадцатеричная система счисления
- •Основные системы счисления
- •Перевод чисел из одной системы счисления в другую
- •2 Основные арифметические операции с двоичными числами
- •Основные арифметические операции
- •2.5 Представления чисел в разрядной сетке эвм
- •2.6 Сложение чисел в форме с плавающей запятой
- •Задание
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •Вариант 17
- •Вариант 18
- •Вариант 19
- •Вариант 20
- •Вариант 21
- •Вариант 22
- •Вариант 23
- •Вариант 24
- •Вариант 25
- •Вариант 26
- •Вариант 27
- •Вариант 28
- •Вариант 29
- •Вариант 30
- •Вариант 31
- •Вариант 32
- •Вариант 33
- •Вариант 34
- •Вариант 35
- •Вариант 36
- •Вариант 37
- •Вариант 38
- •Вариант 39
- •Вариант 40
- •Контрольные вопросы
- •Библиографический список
Перевод чисел из одной системы счисления в другую
А. Перевод чисел в десятичную систему счисления осуществляется путем формирования степенного ряда с основанием той системы, из которой переводится число. После считается сумма.
Пример:
101011.101(2)=1*25 + 0*24 + 1*23 + 0*22 + 1*21 + 1*20 + 1*2-1 + 0*2-2 + 1*2-3 = 43,625(10);
604,04(8) = 6*82 + 0*81 + 4*80 + 0*8-1 + 4*8-2 = 388,0625(10);
C2F,6(16) = 12*162 + 2*161 + 15*160 + 6*16-1 = 3119,375(10).
В. Перевод десятичных чисел в двоичную, восьмеричную и шестнадцатеричную системы счисления осуществляется путем деления десятичного числа на основание той системы, в которую переводится, пока не получится частное меньшее этого основания. Число, получившееся в новой системе, записывается из остатков деления, начиная с последнего.
Пример:
292|_8_
288| 36 |_8_
4 32 | 4
4
292(10) = 444(8)
622|_16_
608| 38 |_16_
14 32 | 2
6
622(10)=26E(16).
C. Перевод дробей из десятичной системы счисления в двоичную, восьмеричную и десятичную осуществляется путем умножения этой дроби на основание той системы, в которую она переводится. В другой системе счисления конечной десятичной дроби может соответствовать бесконечная дробь или периодическая, тогда количество знаков берется в зависимости от требуемой точности.
Пример:
0 |_3125*8_ 0,3125(10) = 0,24(8);
2 | 5000*8
4 | 0000
0 |_65*2_ 0,65(10) = 0,10(1001)(2).
1 | 3*2
0 | 6*2
1 | 2*2
0 | 4*2
0 | 8*2
1 | 6*2
В случае перевода из одной системы счисления в другую числа с целой и дробной частью, необходимо отдельно перевести целую часть и отдельно дробную.
D. При преобразовании восьмеричного или шестнадцатеричного числа в двоичную систему счисления необходимо и достаточно заменить каждую цифру этого числа соответствующим двоичным числом – триадой или тетрадой (Таблица 1), при этом отбрасывают ненужные нули в старших и младших разрядах. При обратном преобразовании числа из двоичной системы счисления в восьмеричную или шестнадцатеричную необходимо и достаточно заменить каждое двоичное число триаду или тетраду на соответствующую цифру, при этом в случае необходимости дописывают нули в старших и младших разрядах.
Пример:
3 – 011; 306,4(8) = 011 000 110, 100(2) = 11 000 110, 1(2)
0 – 000;
6 – 110;
4 – 100.
0111 1111 1011, 1001 1100(2) = 7FB,9C(16).
Перевод из восьмеричной в шестнадцатеричную систему и обратно осуществляется через двоичную систему с помощью триад и тетрад.
2 Основные арифметические операции с двоичными числами
Сложение, вычитание и умножение двоичных чисел производится согласно таблице 2.
Таблица 2
Основные арифметические операции
Двоичное сложение |
Двоичное вычитание |
Двоичное умножение |
0 + 0 = 0 |
0 – 0 = 0 |
0*0 = 0 |
0 + 1 = 1 |
1 – 0 = 1 |
0*1 = 0 |
1 + 0 = 1 |
1 – 1 = 0 |
1*0 = 0 |
1 + 1 = 10 |
10 – 1 = 1 |
1*1 = 1 |
Деление двоичных чисел производится по тем же правилам, что и для десятичных, при этом используются правила двоичного умножения и вычитания.
Информация (числа, команды, записи и т. п.) представляется в ЭВМ в виде двоичных кодов фиксированной или переменной длины. 0 или 1 как отдельные элементы двоичного кода называются разрядами или битами, 8-битовый двоичный код называется байтом. Для записи чисел также используют 32-разрядный формат (машинное слово), 16-разрядный формат (полуслово) и 64-разрядный формат (двойное слово).
В целях упрощения выполнения арифметических операций в ЭВМ применяют прямой, обратный и дополнительный коды чисел. Дополнительный и обратный коды применяются для замены операции вычитания операцией сложения, что упрощает устройство арифметического блока ЭВМ, а прямой код используется при делении и умножении и представлении отрицательных чисел в ЭВМ [3, 4].
2.1 Прямой код
Число А в прямом коде представляется в виде:
,
при А ≥ 0 (3)
, при А < 0,
где χ – двоичная цифра 0 или 1.
Знаковый разряд для положительных чисел «0», а для отрицательных «1».
Пример:
А = + 10110, тогда Апр=010110, а если А = –11011, тогда Апр = 111011.
2.2 Обратный код
При положительном двоичном числе А > 0, его обратный код совпадает с прямым. Если А < 0, то в обратном коде в знаковом разряде пишут «1», а остальные цыфры в разрядах заменяют на противоположные: 0 на 1, а 1 на 0.
Пример:
А = –101, тогда Аобр = 1010.
2.3 Дополнительный код
Если число А ≥ 0, то дополнительный код Адоп совпадает с самим числом. Если число А < 0, то дополнительный код определяют по правилу: находится обратный код числа и к последнему младшему разряду прибавляется «1».
Пример:
А = –11010, тогда Адоп = 100101 + 00001 = 100110.
Благодаря введению кодов операция чисел заменяется сложением обратных или дополнительных кодов.
2.4 Сложение чисел в обратном и дополнительном коде
При сложении чисел в дополнительном коде возникающая единица переноса в знаковом разряде отбрасывается. При сложении чисел в обратном коде возникающая единица переноса в знаковом разряде прибавляется к младшему разряду суммы кодов.
Если результат арифметических действий является кодом отрицательного числа, необходимо преобразовать его в прямой код. При этом обратный код преобразуется в прямой заменой цифр во всех разрядах, кроме знакового, на противоположные. Дополнительный код преобразуется в прямой так же, как и обратный, с последующим прибавлением единицы к младшему разряду.
А) Пример:
А1 = 111, А2 = –11, А1 + А2 = 100.
Прямой код: Обратный код: Дополнительный код:
А1=0,0000111 0, 0000111 1,1111011
А2=1,0000011 1,1111100 1,1111010
1 0,0000011 1 1,1110101
∟перенос +1 ∟ отбрасывается
(А1 + А2)обр = 0,0000100 (А1 + А2)доп = 0,0000100
Так как числа положительные, то дополнительный и обратные коды одинаковы и, следовательно (А1 + А2)обр = (А1 + А2)доп = (А1 + А2)пр.
В) Пример:
А1 = –101, А2 = –11, А1 + А2 = –1011.
Прямой код: Обратный код: Дополнительный код:
А1 = 1,0000101 1, 1111010 1,1111011
А2 = 1,0000110 1,1111001 1,1111010
1 1,1110011 1 1,1110101
∟перенос +1 ∟ отбрасывается
(А1 + А2)обр = 1,1110100 (А1 + А2)доп = 1,1110101
Результаты необходимо перевести в прямой код, потому, что сумма является кодом отрицательного числа (1):
(А1 + А2)обр = 1,1110100 = (А1 + А2)пр = 1,0001011;
(А1 + А2)доп = 1,1110101 = (А1 + А2)пр = 1,0001010 + 0,0000001 = 1,0001011.
Вывод: А1 + А2 = –1011 и полученный результат совпадают.
