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: 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