Главная страница  Систематические методы минимизации 

[0] [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] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128]

пользован при вычитании, основанном на сложении с дополняющими числами. Кроме того, этот код облегчает обнаружение ошибок, потому что во всех его комбинациях имеется хотя бы одна двоичная цифра 1.

Пример сложения представлен в табл. 3.3. Если результирующая сумма равна или меньше 9, то производится коррекция вычитанием 3. Если сумма равна или больше 10, то прибавляется 3. Коррекция +3 или -3 означает прибавление или вычитание ООП. Необходимая коррекция устанавливается по наличию или отсутствию переноса 1. Если имеется перенос, то должна быть коррекция +3, а если переноса нет, то коррекция -3. Производится это следующим образом:

а) оба числа каждой декады складываются согласно правилам двоичного сложения;

б) в сумме каждой декады определяется наличие переноса 1;

в) в каждой декаде, где имел место перенос 1, результат корректируется прибавлением ООП и, наоборот, в декаде без переноса - вычитанием ООП.Вместо вычитания ООП может быть произведено прибавление дополнения 1100.

Примеры вычитания представлены в табл. 3.4. Знак числа О в первом столбце слева означает положительное число, а 1- отрицательное число. Дополнение до 9 в коде с избытком 3 определяется простой заменой двоичной цифры 1 на О и наоборот. Переносы 1 производятся последовательно от декады низшего разряда 10° до знака числа, а если и здесь будет иметь место перенос 1, то она передается цифре низшей декады 10°. Это так называемый циклический перенос 1. Результаты во всех декадах корректируются одновременно путем прибавления ООП к результатам в декадах с переносом и прибавления ООП к результатам в декадах без переноса. В случае если в какой-либо декаде возникнет перенос 1 и во время коррекции, то 1 прибавляется к цифре низшего разряда той же декады.

Для вычитания могут быть использованы также дополнения до 10. Это - дополнения до 9, к цифре низшего разряда которых прибавлена 1. Последовательность вычитания такая же, но здесь не возникают циклические переносы через все декады, благодаря чему при реализации цифрового сумматора на практике ускорится процесс сложения.

Код Грея. Этот код относится к циклическим кодам, характеризующимся тем, что последующая комбинация двоичных цифр отличается от предыдущей только в одном разряде. Код составля--ется простым способом. Цифры низшего разряда пишутся в последовательности 011001100..., цифры следующего разряда - в последовательности 00111100001111..., следующего разряда - в последовательности 00001111111100000000... и т. д. Этот код особенно выгоден при использовании в различных преобразователях. Так как соседние комбинации отличаются друг от друга только в одном разряде, то при преобразовании возникают минимальные

.Ч 9Я 65



Вычитание с дополнением до 9

знак числа I

589 -238

10 10 ДО декад."

1000 1011 1100

1010 1001 0100 351

-уОООО дополнение 761

-1 циклический перенос

0001

ООН коррекция 0100

*-lJ0011-«-l0101-

0101

0011

1 ООО

+ 3

0101

0111

0100

1100

1010

1100

1100

Д11000

гЦОНО 1-э»1

1001

0111


результат

дополнение 410- 589 351

Вычитание с

.дсшолне-нием до 10

1000 1011

1011 1010

jyOOll J0101

11 н

ЦОНО 1)1 ООО

1100 0101 IjOOOl

дополнение 872- 238 351

оШИбки. Это преимущество наиболее ясно при сравнении с кодом 8421. Например, при изменении цифры 7 (соответствующей комбинации 0111) на 8 (соответствующую комбинацию 1000) на короткое время (например, из-за перекрытия механических контактов) может появиться комбинация 1111, представляющая собой большую ошибку. В коде Грея в том же случае ошибка не появится, так как последовательности таковы: 0100, 1100.

Большим преимуществом кода Грея перед другими является простота перевода десятичных цифр в код Грея и наоборот. Десятичное число сначала переводится в код 8421, например (9) = = (1001)8421, а в код Грея переводится затем последовательным суммированием по модулю 2 двоичных цифр, начиная от цифры

низшего разряда: 0ф0 = 0, 0ф1 = 1, 1ф0=1, 1ф1=0. Следовательно, в представленном примере получим (1001)8421=(И01)грей•

3.2. КОДЫ С БОЛЬШИМ ЧИСЛОМ ЭЛЕМЕНТОВ

Хотя десятичные цифры можно легко выразить с помощью четырехэлементных кодов, часто используются коды с большим числом бит, которые более удобны для некоторых операций и об-



легчают обнаружение ошибок. Примеры таких кодов представлены в табл. 3.5.

Таблица 3.5. Коды с большим числом элементов

« x

51111

Бнквинар-

Кй пп.

2 из 5

1 нз 10

5043210

00011

00000

00000

0100001

0000000001

00101

00001

00001

0100010

0000000010

00110

00011

00011

0100100

0000000100

01001

00111

00111

0101000

0000001000

01010

01111

01111

0110000

0000010000

01100

11111

10000

1000001

0000100000

10001

11000

1000010

0001000000

10010

11100

11100

1000100

0010000000

- 8

10100

11000

11110

1001000

0100000000

11000

10000

11111

1010000

1000000000

Код «2 из 5» характеризуется тем, что в каждой его комбинации всегда имеются две двоичные 1. В ,коде легко обнаруживается ошибка O-H-l или 1->0. Нельзя определить число ошибок обоих типов, так как они взаимно компенсируются, однако вероятность одновременного появления таких ошибок в большинстве случаев очень мала.

Код Джонсона пригоден для специальных счетчиков и легко дешифруется. Подобные свойства имеет код 511который, кро-

. ме того, еще и самодополняющийся. Биквинарный код является весовым кодом, он может быть использован для арифметических операций и облегчает обнаружение ошибок. Десятиэлементный

.код «1 из 10» часто используется в счетчиках и не требует дешифрирования.

Таблица 3.6. Число комбинаций некоторых кодов т из п

2 3 4

2 3 4

1 3 6

- 1 4

. .




[0] [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] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128]

0.0129