Ortiqcha - 3

Ortiqcha-3, 3-ortiqcha yoki 10-ortiqcha-3 ikkilik kod (koʻpincha XS-3, 3XS yoki X3 sifatida qisqartiriladi), oʻzgaruvchi binar yoki Stibitz kodi (1937-yilda oʻrni asosidagi qoʻshish mashinasini qurgan Jorj Stibitzdan keyin) oʻz-oʻzini toʻldiruvchi ikkilikdir . -Kodlangan oʻnlik (BCD) kod va raqamlar tizimidir . Bu noxolis vakillik . Ortiqcha-3 kodi baʼzi eski kompyuterlarda, shuningdek, kassa apparatlari va 1970-yillarning qoʻlda koʻchma elektron kalkulyatorlarida va boshqa maqsadlarda ham ishlatilgan.

 Vakillik 
Notoʻgʻri kodlar — bu qiymat sifatida oldindan belgilangan N raqamidan foydalangan holda ijobiy va salbiy raqamlarning muvozanatli soni bilan qiymatlarni ifodalash usuli. Notoʻgʻri kodlar (va kulrang kodlar) vaznsiz kodlardir. 3 tadan ortiq kodda raqamlar oʻnlik raqamlar sifatida ifodalanadi va har bir raqam toʻrt bit bilan raqam qiymati va 3 („ortiqcha“ miqdor) sifatida ifodalanishi mumkin:

 Eng kichik ikkilik son eng kichik qiymatni bildiradi .
 Eng katta ikkilik son eng katta qiymatni bildiradi .

+Ortiqcha-3 va Stibitz kodi Oʻnlik Ortiqcha — 3 Stibitz BCD 8-4-2-1 Ikkilik 3/6 CCITT kengaytma 4/8 Xemming kengaytma − 3 0000 psevdo-tetrade Yoʻq Yoʻq Yoʻq Yoʻq − 2 0001 psevdo-tetrade − 1 0010 psevdo-tetrade 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 psevdo-tetrade psevdo-tetrade 1010 Yoʻq Yoʻq 11 1110 psevdo-tetrade psevdo-tetrade 1011 12 1111 psevdo-tetrade psevdo-tetrade 1100 13 Yoʻq Yoʻq psevdo-tetrade 1101 14 psevdo-tetrade 1110 15 psevdo-tetrade 1111
127 kabi raqamni kodlash uchun oʻnlik raqamlarning har birini yuqoridagi kabi kodlash kifoya boʻladi va (0100, 0101, 1010).

Ortiqcha-3 arifmetikasi oddiy noaniq BCD yoki ikkilik pozitsion tizim raqamlariga qaraganda turli xil algoritmlardan foydalanadi. Ikki ortiqcha-3 raqamni qoʻshgandan soʻng, xam summa ortiqcha-6 boʻladi. Masalan, 1 (ortiqcha-0100) va 2 (ortiqcha-3-0101) qoʻshilgandan soʻng, yigʻindi 3 (ortiqcha-3-0110) oʻrniga 6 (ortiqcha-3-1001) ga oʻxshaydi. Ushbu muammoni hal qilish uchun ikkita raqam qoʻshilgandan soʻng, agar natijada olingan raqam oʻnlik 10 dan kichik boʻlsa, ikkilik 0011ni (ob’ektiv ikkilikdagi oʻnlik 3) ayirish yoki ikkilik 1101ni (ob’ektivda oʻnlik 13 ayirish orqali qoʻshimcha chiziqni olib tashlash kerak) agar toshib ketish (tashish) sodir boʻlsa. (4-bitli ikkilik tizimda ikkilik 1101ni ayirish 0011ni qoʻshishga teng va aksincha)

 Motivatsiya 
Notoʻgʻri kodlashdan koʻra ortiqcha-3 kodlashning asosiy afzalligi shundaki, oʻnlik sonni toʻqqizlik bilan toʻldirish mumkin (ayirish uchun) ikkilik sonni birlarni toʻldirish mumkin boʻlgani kabi: faqat barcha bitlarni teskari aylantirish orqali. Bundan tashqari, ikkita ortiqcha 3 ta raqam yigʻindisi 9 dan katta boʻlsa, 4 bitli qoʻshimchaning tashish biti yuqori boʻladi. Bu ishlaydi, chunki ikkita raqam qoʻshilgandan soʻng, 6 ning „ortiqcha“ qiymati yigʻindiga olib kelinadi. 4-bitli butun son faqat 0 dan 15 gacha boʻlgan qiymatlarni oʻz ichiga olishi mumkinligi sababli, 6 dan ortigʻi 9 dan ortiq har qanday summa toʻlib ketishini anglatadi (amalga oshirishni keltirib chiqaradi).

Yana bir afzalligi shundaki, 0000 va 1111 kodlari hech qanday raqam uchun ishlatilmaydi. Xotira yoki asosiy uzatish liniyasidagi nosozlik ushbu kodlarga olib kelishi mumkin. Magnit muhitga nol qiymatni yozish ham qiyinroq.

 Misol 
VHDL da BCD 8-4-2-1 dan ortiq-3 konverteri misoli: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 kod kengaytmasi: Ortiqcha-3 kod baʼzan maʼlumotlarni uzatish uchun ham ishlatiladi, keyin koʻpincha CCITT GT uchun 6 bitli kodga kengaytiriladi 43 Yoʻq. 1, bu yerda 6 bitdan 3 tasi oʻrnatiladi.
 4/8 kod kengaytmasi: IBM qabul qiluvchi kodiga muqobil sifatida (bu Hamming masofasi 2 ga teng 4/8 kod), 4-kodni ham belgilash mumkin.ortiqcha-3 kod kengaytmasi, agar faqat denar raqamlari oʻtkazilishi kerak boʻlsa, Hamming masofasi 4 ga eltadi.

 Yana qarang 

 Ofset ikkilik, ortiqcha- N, noaniq vakillik
 Ortiqcha — 128
 Haddan tashqari kulrang kod
 Oʻzgartirilgan kulrang kod
 Kulrang kod
 m-of-n kodi
 Aiken kodi
Turkum:Sanoq tizimlari