У інформатиці використовують різні способи представлення чисел зі знаком у двійковій системі числення.
У математиці, від'ємні числа в системі числення з будь-якою основою позначаються за допомогою знака мінус («-») перед ними. Проте, в комп'ютерній техніці, числа представляються лише у вигляді послідовності бітів, без додаткових символів. Існує чотири найвідоміших методи розширення двійкової системи числення для представлення чисел зі знаком: прямий код, обернений код, доповняльний код, двійковий зсув. Деякі альтернативні методи замість явного використання знаку, використовують його неявно, наприклад, можна використовувати систему числення з основою −2. Відповідні способи представлення чисел можуть бути розроблені для будь-яких інших основ, чи додатних, від'ємних, дробових, чи інших розробок на цю тему.
Не існує критеріїв, щоб з'ясувати який метод найкращий. У більшості сучасних обчислювальних пристроїв використовується доповняльний код, існують і такі, які використовують обернений код.
Прямий код
Цей метод ще називають «знак та величина» (), а про числа записані в такому вигляді кажуть «знакова величина». В першому наближені, задача представлення знака числа зводиться до виділення додаткового знакового біту, який відповідає знаку числа: значення цього біту (зазвичай це старший біт) дорівнює 0 для додатного числа і 1 для від'ємного. Решта бітів числа позначають величину числа (або абсолютне значення). Тому в байті лише 7 біт (знаковий біт відокремлено) буде використано для позначення величини, яка змінюється від 0000000 (0) до 1111111 (127). Таким чином, можна представляти числа від −12710 до +12710 якщо додавати знаковий (восьмий) біт. Як наслідок, існує два способи представлення нуля, а саме 00000000 (0) та 10000000 (−0). Для прикладу, −4310 у 8-бітномі кодуванні буде 10101011.
Цей підхід цілком відповідає загальному способу вказувати знак (розміщувати знак «+» або «−» перед величиною цього числа). Деякі ранні бінарні комп'ютери (наприклад, IBM 7090) використовували таке представлення, скоріш за все, у відповідності до загальноприйнятого способу. Прямий код є найбільш поширеним способом представлення чисел з рухомою комою.
Порівняльна таблиця У наступній таблиці показані додатні та від'ємні цілі числа, які можуть бути представлені за допомогою 4 біт.
+ представлення 4-х бітних цілих Десяткове Беззнакове Прямий код Обернений код Доповняльний код Двійковий зсув Основа −2+16 +15 1111 +14 1110 +13 1101 +12 1100 +11 1011 +10 1010 +9 1001 +8 1000 +7 0111 0111 0111 0111 1111 +6 0110 0110 0110 0110 1110 +5 0101 0101 0101 0101 1101 0101+4 0100 0100 0100 0100 1100 0100+3 0011 0011 0011 0011 1011 0111+2 0010 0010 0010 0010 1010 0110+1 0001 0001 0001 0001 1001 0001+0 0000 0000 0000 0000 1000 0000−0 1000 1111−1 1001 1110 1111 0111 0011−2 1010 1101 1110 0110 0010−3 1011 1100 1101 0101 1101−4 1100 1011 1100 0100 1100−5 1101 1010 1011 0011 1111−6 1110 1001 1010 0010 1110−7 1111 1000 1001 0001 1001−8 1000 0000 1000−9 1011−10 1010−11
Зворотня таблиця, в якій послідовності з 4-х бітів ставиться у відповідність числа, в залежності від способу представлення: Бінарне Беззнакове Прямий код Обернений код Доповняльний код Двійковий зсув Основа −2 0000 0 0 0 0 −8 0 0001 1 1 1 1 −7 1 0010 2 2 2 2 −6 −2 0011 3 3 3 3 −5 −1 0100 4 4 4 4 −4 4 0101 5 5 5 5 −3 5 0110 6 6 6 6 −2 2 0111 7 7 7 7 −1 3 1000 8 −0 −7 −8 0 −8 1001 9 −1 −6 −7 1 −7 1010 10 −2 −5 −6 2 −10 1011 11 −3 −4 −5 3 −9 1100 12 −4 −3 −4 4 −4 1101 13 −5 −2 −3 5 −3 1110 14 −6 −1 −2 6 −6 1111 15 −7 −0 −1 7 −5
Джерела Ivan Flores, The Logic of Computer Arithmetic, Prentice-Hall (1963) Israel Koren, Computer Arithmetic Algorithms, A.K. Peters (2002), ISBN 1-56881-160-8