
- •1. Системы счисления
- •1.2. Двоичная система счисления
- •1.7. Перевод из одной системы счисления в другую
- •1.8. Двоично-десятичный код
- •9 8 3 6 5
- •2. Двоичная арифметика
- •3. Способы представления чисел (прямой, обратный и дополнительный коды)
- •3.1. Положительные целые числа
- •3.2. Отрицательные целые числа
- •3.3. Преобразование кодов
- •3.4. Преобразование положительных чисел из одного кода в другой
- •3.5. Преобразование прямого кода отрицательного числа в обратный код и обратного кода отрицательного числа в прямой код
- •3.6. Преобразование обратного кода отрицательного числа в дополнительный код
- •3.7. Преобразование дополнительного кода отрицательного числа в обратный и прямой коды
- •3.8. Некоторые возможности упрощения преобразований двоичного прямого или обратного кода в дополнительный и наоборот
9 8 3 6 5
Возможны и другие двоично-десятичные коды с другими весами разрядов двоичного числа, например:
7-4-2-1 |
7-3-2-1 |
3-3-2-1 |
6-3-1-1 |
6-4-2-1 |
6-3-2-1 |
6-2-2-1 |
5-3-1-1 |
5-4-2-1 |
5-3-2-1 |
5-2-2-1 |
4-3-1-1 |
4-4-2-1 |
4-3-2-1 |
4-2-2-1 |
5-2-1-1 |
Эти коды представляют десятичное число от 0 до 9, однако, они не имеют однозначности в изображении десятичных чисел. Например, код 4-3-2-1 дает определение числа 6 в виде: 0111 или 1010.
Широкое распространение в вычислительной технике нашли самодополняющие коды, как двоично-десятичные коды со свойством самодополнения до 9. Такие коды обусловлены заменой операции вычитания операцией сложения в ЭВМ, выполняемых в обратных и дополнительных кодах. Наиболее распространенными кодами является код 2-4-2-1 (код Айкена) и код 8-4-2-1 с избытком 3.
Из таблицы видно, что при инвертировании цифр всех четырех разрядов (замены 0 на 1 и наоборот) получается дополнение до 9 для кодируемой десятичной цифры.
Десятичная цифра |
Код Айкена (2-4-2-1) |
Код с избытком 3 (8-4-2-1) |
0 |
0000 |
0011 |
1 |
0001 |
0100 |
2 |
0010 |
0101 |
3 |
0011 |
0110 |
4 |
0100 |
0111 |
5 |
1011 |
1000 |
6 |
1100 |
1001 |
7 |
1101 |
1010 |
8 |
1110 |
1011 |
9 |
1111 |
1100 |
2. Двоичная арифметика
Правила выполнения арифметических действий над двоичными числами определяются арифметическими действиями над одноразрядными двоичными числами.
Как и в десятичной системе счисления, сложение двоичных чисел начинается с правых (младших) разрядов. Если результат сложения цифр младших разрядов обоих слагаемых не помещается в этом же разряде результата, то происходит перенос. Цифра, переносимая в соседний разряд слева, добавляется к его содержимому. Такая операция выполняется над всеми разрядами слагаемых от младших до старших.
Например, 9910 + 9510 = 19410:
Операция вычитания двоичных чисел аналогична операции в десятичной системе счисления. Операция вычитания начинается, как и сложение, с младшего разряда. Если содержимое разряда уменьшаемого меньше содержимого одноименного разряда вычитаемого, то происходит заем 1 из соседнего старшего разряда. Операция повторяется над всеми разрядами операндов от младших до старших.
Например, 10910 – 4910 = 6010:
Как и в десятичной системе счисления, операция перемножения двоичных многоразрядных чисел производится путем образования частичных произведений и последующего их суммирования. Частичные произведения формируются в результате умножения множимого на каждый разряд множителя, начиная с младшего. Каждое частичное произведение смещено относительно предыдущего на один разряд. Поскольку умножение идет в двоичной системе счисления, каждое частичное произведение равно либо 0 (если в соответствующем разряде множителя стоит 0), либо является копией множимого, смещенного на соответствующее число разрядов влево (если в разряде множителя стоит 1). Поэтому умножение двоичных чисел идет путем сдвига и сложения. Таким образом, количество частичных произведений определяется количеством единиц в множителе, а их сдвиг – положением единиц (младший разряд частичного произведения совпадает с положением соответствующей единицы в множителе). Положение точки в дробном числе определяется так же, как и при умножении десятичных чисел.
Например, 1710 × 1210 = 20410:
Деление – операция, обратная умножению, поэтому при делении двоичных чисел, так же как и в десятичной системе счисления, операция вычитания повторяется до тех пор, пока уменьшаемое не станет меньше вычитаемого. Число этих повторений показывает, сколько раз вычитаемое укладывается в уменьшаемом.
Например, 20410 / 1210 = 1710: