Допълнителен код за десетични числа
Същият принцип може да се използва в компютър представяне на десетични числа: за всяка цифра X освобождаване се заменя с 9-X, и да се добавя към 1. Например, получената броят при използване на четири двуцифрени числа се заменя с -0081 9919 (9919 + 0081 = 0000, петият отговорност изхвърля).
При прилагането на същата идея за обичайното 10-ADIC бройна система от (например, за хипотетичен процесор се използва 10-ADIC система номер):
10 Унг система номер
( "Normal" пост)
10 Унг брой система,
допълнителен код
Преобразуване на допълнителен код
Конвертиране на редица напред допълнителен код изпълнява от следния алгоритъм.
- Ако най-значимият (знак) малко от броя записани в директния кода е равна на 0, а след това броят им е положително и е извършено преобразуване;
- Ако най-значимият (знак) малко от броя записани в кода напред е 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) - единици.
Свързани статии