ПредишенСледващото

Допълнителен код за десетични числа

Същият принцип може да се използва в компютър представяне на десетични числа: за всяка цифра X освобождаване се заменя с 9-X, и да се добавя към 1. Например, получената броят при използване на четири двуцифрени числа се заменя с -0081 9919 (9919 + 0081 = 0000, петият отговорност изхвърля).

При прилагането на същата идея за обичайното 10-ADIC бройна система от (например, за хипотетичен процесор се използва 10-ADIC система номер):

10 Унг система номер
( "Normal" пост)

10 Унг брой система,
допълнителен код

Преобразуване на допълнителен код

Конвертиране на редица напред допълнителен код изпълнява от следния алгоритъм.

  1. Ако най-значимият (знак) малко от броя записани в директния кода е равна на 0, а след това броят им е положително и е извършено преобразуване;
  2. Ако най-значимият (знак) малко от броя записани в кода напред е 1, а след това броят им е отрицателен, броят на всички битове с изключение на знака, са обърнати. и 1 се добавя към резултата.

Пример. -5 трансформира отрицателно число, записано в пряк код, под код. Директен -5 отрицателно число код:

Обърнете битове на всички, с изключение на знака, при което се получава обратна код (първи допълнение) -5 отрицателно число:

Добавя се 1 до резултата, при което се получава допълнителен код (втори допълнение) -5 отрицателно число:

За да се превърне отрицателните номера -5 записани в двойки, в положителен номер 5, записана в директен код използва подобен алгоритъм. А именно:

Обърнете всички битове -5 отрицателно число, което се получава положително число 4 в кода напред:

Добавянето на 1 до резултата от положително число 5 излезе в директен код:

И да се провери, сгънати с допълнителен код

р-ADIC брой система обратна на реализация номер се извършва в броя на допълнителен код. Например, ако 5-шестнадесетична система номер, броят на противоположната 00015 (110) е равен на 44 445 (-110).

трансформация Изпълнение алгоритъм в допълнителен код (за 8-битови числа)

Предимства и недостатъци

предимства

  • Общи указания (CPU) за събиране, изваждане и отклонение в дясно за подписани и неподписани числа (разликата е само в аритметични знамена, които трябва да бъдат проверени, за да контролира преливане като резултат).
  • Липса на "минус нула".

недостатъци

  • Отрицателно число не може да се прочете от обичайните правила за нейното възприятие изисква специални умения или изчисление
  • В някои изглед (като BCD) или техните съставни части (например, мантисата на плаваща точка) допълнителна кодираща неудобно
  • Модул максимален брой не е равно на най-малкия брой на модул. Например, за осем-битово цяло число, максималният брой: 12710 = 011111112. минимален брой: -12810 = 100000002. Съответно, съществува за произволен брой обратното. Операция обрат може да поиска допълнителна проверка.

превръщане Пример софтуер

Ако данните се четат от файл или паметта район, където те се съхраняват в операнда дестинация (например, WAVE файл), може да се наложи да я превърне в байтове. Ако данните се съхраняват в 8 бита, е необходимо, че стойностите на 128-255 са отрицателни.

C # .NET / C стил

разширение Знак (удължаване Engl Вход.) - операция на двоично число, което може да увеличи капацитета на запазване на знака и стойност. Тя се осъществява чрез добавяне на цифри от най-ниската цифра. Ако броят е положителен (MSB е 0), след това се добавя нули, ако отрицателен (MSB е 1) - единици.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!