Модификациялық кодтар
Қарастырылған кодтардың маңызды ерекшелігі-қосу-азайту операциясын орындау барысында санның сандық бөлігі толып, таңбалық разрядқа ауыспайды. Толып кету тек маңызды разрядта пайда болады. Бұл модульдегі екі терминнің қосындысы біреуден аз болғандықтан болады.
Нақты мәселелерді шешкен кезде, екі терминнің қосындысы біреуден аз болатынын алдын-ала анықтау қиынға соғады. Қалай болғанда да, толып кетудің алдын алу үшін машина жұмыс істейтін сандар ауқымын тарылтатын терминдердің мөлшеріне қосымша шектеулер енгізуге болады. Екеуі де қолайсыз.
Осындай мысалды қарастырайық:
X = -0,101 қосымша код 1.011 = [X]дк
Y= -0,111 1.001 = [Y]дк
S- = X- + Y- 0.100 = [S]дк
Яғни, біз белгі бойынша да, сандық бөлімде де дұрыс емес нәтиже аламыз.
Тағы бір мысалды қарастырайық:
X = +0,101 бұрын қарастырылған кез келген 0.101 = [X]дк,ок
Y = +0,111 кодтары бар 0.111 = [Y]дк,ок
S+ = X+ + Y+ 1.100 = [S]дк,ок
Яғни, бұл жағдайда цифрлық бөлімде толып кету операцияның нәтижесін бұрмалайды.
Сандық тордың толып кетуі терминдердің бірдей белгілері болған жағдайда орын алатынын байқауға болады, өйткені дәл осы жағдайда нәтиже модулі әр терминнің модульдерінен асып түседі, толып кету фактісі нәтиже белгісінің өзгеруімен жазылуы мүмкін.
Осылайша, толып кетуді бекітудің бір әдісі-бірдей терминдердің белгілерінен нәтиженің қарама-қарсы белгісіне Жылжытуды автоматты түрде анықтау.
Алайда, толып кетуді бекітудің бұл әдісі ыңғайсыз, өйткені алдын-ала терминдердің белгілерін есте сақтау керек, бір-бірімен салыстырып, нәтиже алғаннан кейін.
Толып кетуді бекітудің тағы бір принципі бар. Бұл принцип модификацияланған кодтар деп аталатындарды қолдануға негізделген. Разряд торын толтыру кезінде есептеулерді тоқтату керек немесе,ең болмағанда, толып кетудің арнайы белгісін жасау керек, ал есептеулерді тоқтату туралы шешім бағдарламашыға жүктелуі керек.
Өзгертілген кодтардың мәні-таңбалық разрядқа тағы бір разряд қосылады:
"+"00-ге сәйкес келеді
"- "11-ге сәйкес келеді
Содан кейін, анықтама бойынша, санның өзгертілген қосымша коды деп аталады Тогда, по определению модифицированным дополнительным кодом числа называется
Белгі разрядтарында пайда болған тасымалдау жоғалады. Жалпы, өзгертілген код қарапайым қосымша кодтан ерекшеленбейді. Сол сияқты, анықтамасы бойынша кері код болып табылады:
Қарапайым кері код сияқты, циклдік тасымалдау тізбегінің таңбалық разрядтарында пайда болатын тасымалдау бірлігі санның сандық бөлігінің төменгі разрядына қосылады.
Қосуда тек біреуден аз сандар ғана қатысатындықтан, онда
S = X + Y < 2
Сондықтан жоғары таңбалық разрядты санның сандық бөлігінен ауыстыру арқылы бұрмалауға болмайды, екінші жағынан, сандарды қосу кезінде пайда болатын орам
S = X + Y > 1
кіші белгі разрядын бұрмалайды.
Операциядан кейінгі таңбалық разрядтардың сәйкес келмеуі толып кету фактісін көрсетеді.
Бұл жағдайда толып кетудің екі түрі бар:
"01" - оң
"10" - теріс.
Біріншісі 01 тіркесіміне таңбалық разрядтарда, ал екіншісі 10-ға сәйкес келеді.
Мысалдар
Модификацияланған қосымша код:
а) [X]мдк = 00.101 +00.101
[Y]мдк = 00.111 00.111
[S]мдк = 01.100 – оң толып кету
б) [X]мдк = 11.101 +11.101
[Y]мдк = 11.001 11.001
[S]мдк = 1х10.110 – теріс толып кету
Модификацияланған кері код
а) [X]мок = 00.101 +00.101
[Y]мок = 00.111 00.111
[S]мок = 01.100 – оң толып кету
б) [X]мок = 11.010 +11.010
[Y]мок = 11.000 11.000
1|10.010
------>1
[S]мок = 10.011 – теріс толып кету
Достарыңызбен бөлісу: |