Превышение-3 - Excess-3
Код Стибица | |
---|---|
Цифры | 4 |
Треки | 4 |
Значения цифр | 8 4 −2 −1 |
Вес (а) | 1..3 |
Непрерывность | Нет |
Циклический | Нет |
Минимальное расстояние | 1 |
Максимальное расстояние | 4 |
Резервирование | 0,7 |
Лексикография | 1 |
Дополнение | 9 |
Двоичный код с избытком -3 , 3-избытком или 10-избытком-3 (часто сокращенно XS-3 , 3XS или X3 ), сдвинутый двоичный код или код Стибица (после Джорджа Стибица , который построил релейную суммирующую машину в 1937 году) самокомплементарный двоично-десятичный код (BCD) и система счисления . Это предвзятое представление . Код Excess-3 использовался, в частности, на некоторых старых компьютерах, а также в кассовых аппаратах и портативных электронных калькуляторах 1970-х годов.
Представление
Коды со смещением - это способ представления значений со сбалансированным количеством положительных и отрицательных чисел с использованием заранее заданного числа N в качестве значения смещения. Коды со смещением (и коды Грея ) - это невзвешенные коды. В коде превышения-3 числа представлены в виде десятичных цифр, и каждая цифра представлена четырьмя битами как цифровое значение плюс 3 («избыточная» сумма):
- Наименьшее двоичное число представляет наименьшее значение ( 0 - превышение ).
- Наибольшее двоичное число представляет наибольшее значение ( 2 N +1 - превышение - 1 ).
Десятичный | Превышение-3 | Стибиц | BCD 8-4-2-1 | Двоичный | Расширение
3 из 6 CCITT |
Расширение
Хэмминга 4 из 8 |
---|---|---|---|---|---|---|
−3 | 0000 | псевдотетрада | Нет данных | Нет данных | Нет данных | Нет данных |
−2 | 0001 | псевдотетрада | ||||
−1 | 0010 | псевдотетрада | ||||
0 | 0011 | 0011 | 0000 | 0000 | … 10 | … 0011 |
1 | 0100 | 0100 | 0001 | 0001 | … 11 | … 1011 |
2 | 0101 | 0101 | 0010 | 0010 | … 10 | … 0101 |
3 | 0110 | 0110 | 0011 | 0011 | … 10 | … 0110 |
4 | 0111 | 0111 | 0100 | 0100 | … 00 | … 1000 |
5 | 1000 | 1000 | 0101 | 0101 | … 11 | … 0111 |
6 | 1001 | 1001 | 0110 | 0110 | … 10 | … 1001 |
7 | 1010 | 1010 | 0111 | 0111 | … 10 | … 1010 |
8 | 1011 | 1011 | 1000 | 1000 | … 00 | … 0100 |
9 | 1100 | 1100 | 1001 | 1001 | … 10 | … 1100 |
10 | 1101 | псевдотетрада | псевдотетрада | 1010 | Нет данных | Нет данных |
11 | 1110 | псевдотетрада | псевдотетрада | 1011 | ||
12 | 1111 | псевдотетрада | псевдотетрада | 1100 | ||
13 | Нет данных | Нет данных | псевдотетрада | 1101 | ||
14 | псевдотетрада | 1110 | ||||
15 | псевдотетрада | 1111 |
Чтобы закодировать число, такое как 127, просто кодируют каждую из десятичных цифр, как указано выше, давая (0100, 0101, 1010).
В арифметике с превышением-3 используются алгоритмы, отличные от обычных беспристрастных двоично-десятичных или двоичных позиционных чисел. После сложения двух дополнительных трех цифр исходная сумма будет равна шести разрядам. Например, после сложения 1 (0100 сверх 3) и 2 (0101 сверх 3) сумма будет выглядеть как 6 (1001 сверх 3) вместо 3 (0110 сверх 3). Чтобы исправить эту проблему, после добавления двух цифр необходимо удалить дополнительное смещение путем вычитания двоичного 0011 (десятичное 3 в несмещенном двоичном), если результирующая цифра меньше десятичного 10, или вычитания двоичного 1101 (десятичного 13 в несмещенном двоичный), если произошло переполнение (перенос). (В 4-битном двоичном коде вычитание двоичного 1101 эквивалентно сложению 0011 и наоборот.)
Мотивация
Основное преимущество кодирования с избытком-3 перед кодированием без смещения состоит в том, что десятичное число может быть дополнено девятками (для вычитания) так же легко, как двоичное число может быть дополнено единицами : просто путем инвертирования всех битов. Кроме того, когда сумма двух дополнительных трех цифр больше 9, бит переноса 4-битного сумматора будет установлен в высокий уровень. Это работает, потому что после сложения двух цифр "лишнее" значение 6 дает сумму. Поскольку 4-битное целое число может содержать только значения от 0 до 15, превышение 6 означает, что любая сумма, превышающая 9, будет переполняться (производить перенос).
Еще одно преимущество состоит в том, что коды 0000 и 1111 не используются ни для одной цифры. Эти коды могут вызвать неисправность в памяти или основной линии передачи. Также сложнее записать нулевой шаблон на магнитный носитель.
пример
Пример преобразователя BCD 8-4-2-1 в избыток-3 в VHDL :
entity bcd8421xs3 is
port (
a : in std_logic;
b : in std_logic;
c : in std_logic;
d : in std_logic;
an : buffer std_logic;
bn : buffer std_logic;
cn : buffer std_logic;
dn : buffer std_logic;
w : out std_logic;
x : out std_logic;
y : out std_logic;
z : out std_logic
);
end entity bcd8421xs3;
architecture dataflow of bcd8421xs3 is
begin
an <= not a;
bn <= not b;
cn <= not c;
dn <= not d;
w <= (an and b and d ) or (a and bn and cn)
or (an and b and c and dn);
x <= (an and bn and d ) or (an and bn and c and dn)
or (an and b and cn and dn) or (a and bn and cn and d);
y <= (an and cn and dn) or (an and c and d )
or (a and bn and cn and dn);
z <= (an and dn) or (a and bn and cn and dn);
end architecture dataflow; -- of bcd8421xs3
Расширения
Расширение 3 из 6 | |
---|---|
Цифры | 6 |
Треки | 6 |
Вес (а) | 3 |
Непрерывность | Нет |
Циклический | Нет |
Минимальное расстояние | 2 |
Максимальное расстояние | 6 |
Лексикография | 1 |
Дополнение | (9) |
Расширение 4 из 8 | |
---|---|
Цифры | 8 |
Треки | 8 |
Вес (а) | 4 |
Непрерывность | Нет |
Циклический | Нет |
Минимальное расстояние | 4 |
Максимальное расстояние | 8 |
Лексикография | 1 |
Дополнение | 9 |
- Расширение кода 3 из 6: Код избытка 3 иногда также используется для передачи данных, а затем часто расширяется до 6-битного кода согласно CCITT GT 43 No. 1, где установлены 3 из 6 битов.
- Расширение кода 4 из 8: в качестве альтернативы коду приемопередатчика IBM (который представляет собой код 4 из 8 с расстоянием Хэмминга 2) также можно определить код 4 из 8 с избытком-3 расширение, достигающее расстояния Хэмминга, равного 4, если должны передаваться только десятичные цифры.
Смотрите также
- Смещение двоичное , избыток- N , смещенное представление
- Превышение-128
- Превышение кода Грея
- Сдвинутый код Грея
- Код Грея
- m-of-n код
- Код Айкен