<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://camokathomelab.servebeer.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=85.90.119.220</id>
	<title>wiki12 - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://camokathomelab.servebeer.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=85.90.119.220"/>
	<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/85.90.119.220"/>
	<updated>2026-07-19T12:48:35Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://camokathomelab.servebeer.com/mediawiki/index.php?title=%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4&amp;diff=17712</id>
		<title>Дополнительный код</title>
		<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4&amp;diff=17712"/>
		<updated>2025-11-11T04:54:12Z</updated>

		<summary type="html">&lt;p&gt;85.90.119.220: /* Преамбула */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Дополнительный код&#039;&#039;&#039; ({{lang-en|&amp;quot;two’s complement&amp;quot;}}, иногда &#039;&#039;&amp;quot;twos-complement&amp;quot;&#039;&#039;) — наиболее распространённый способ представления [[отрицательное число|отрицательных целых чисел]] в [[компьютер]]ах. Он позволяет заменить операцию вычитания на операцию сложения и сделать операции сложения и вычитания одинаковыми для знаковых и {{d-|[[Беззнаковое число|беззнаковых]]}} чисел, что упрощает [[Архитектура компьютера|архитектуру ЭВМ]]. В англоязычной литературе «[[обратный код]]» (инверсия [[Прямой код|прямого кода]]) называют «первым дополнением» ({{lang-en|&amp;quot;ones&#039; complement&amp;quot;}}), а «дополнительный код» называют «вторым дополнением» ({{lang-en|&amp;quot;two’s complement&amp;quot;}}).&lt;br /&gt;
&lt;br /&gt;
Дополнительный код для отрицательного числа можно получить инвертированием его двоичного модуля (получается &amp;quot;первое дополнение&amp;quot;) и прибавлением к инверсии единицы (получается &amp;quot;второе дополнение&amp;quot;), либо вычитанием числа из нуля (сразу получается &amp;quot;второе дополнение&amp;quot;).&amp;lt;br&amp;gt;Дополнительный код для отрицательного числа определяется как величина, полученная вычитанием модуля числа из наибольшей степени двух (из &amp;lt;math&amp;gt;2^N&amp;lt;/math&amp;gt; для &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt;-битного второго дополнения).&lt;br /&gt;
&lt;br /&gt;
== История ==&lt;br /&gt;
То, что отрицательные числа в дополнительном коде можно складывать на [[сумматор]]е, было известно ещё во времена [[Паскаль, Блез|Паскаля]], который и применил это свойство в своей [[Суммирующая машина Паскаля|суммирующей машине]] &amp;quot;Паскалина&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
== Представление отрицательного числа в дополнительном коде ==&lt;br /&gt;
При записи числа в дополнительном коде старший разряд является знаковым. Если значение старшего разряда равно 0, то это значит, что в остальных разрядах записано положительное [[Двоичная система счисления|двоичное число]], совпадающее с [[прямой код (представление числа)|прямым кодом]].&lt;br /&gt;
&lt;br /&gt;
Двоичное 8-разрядное число &#039;&#039;со знаком&#039;&#039; в дополнительном коде может представлять любое целое в диапазоне от −128 до +127. Если старший разряд равен нулю, то наибольшее целое число, которое может быть записано в оставшихся 7 разрядах, равно &amp;lt;math&amp;gt;2^7-1=127&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Примеры:&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
 ! rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot;| Десятичное&amp;lt;br&amp;gt;представление&lt;br /&gt;
 ! align=&amp;quot;center&amp;quot; colspan=&amp;quot;3&amp;quot; | Двоичное представление (8 бит), код:&lt;br /&gt;
 |-&lt;br /&gt;
 ! width=&amp;quot;25%&amp;quot; align=&amp;quot;center&amp;quot;| [[Прямой код|прямой]]&lt;br /&gt;
 ! width=&amp;quot;25%&amp;quot; align=&amp;quot;center&amp;quot;| [[Обратный код|обратный]]&lt;br /&gt;
 ! width=&amp;quot;25%&amp;quot; align=&amp;quot;center&amp;quot;| дополнительный&lt;br /&gt;
 |-&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|       127 &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot; |  &amp;lt;code&amp;gt;0111 1111&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;0111 1111&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;0111 1111&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  |-&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|         1 &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;0000 0001&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;0000 0001&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;0000 0001&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  |-&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|         0 &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;0000 0000&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;0000 0000&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;0000 0000&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  |-&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|        −0 &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1000 0000&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1111 1111&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|                       — &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  |- &lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|        −1 &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1000 0001&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1111 1110&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1111 1111&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  |-&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|        −2 &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1000 0010&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1111 1101&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1111 1110&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  |-&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|        −3 &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1000 0011&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1111 1100&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1111 1101&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  |-&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|        −4 &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1000 0100&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1111 1011&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1111 1100&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  |-&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|        −5 &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1000 0101&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1111 1010&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1111 1011&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  |-&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|        −6 &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1000 0110&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1111 1001&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1111 1010&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  |-&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|        −7 &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1000 0111&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1111 1000&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1111 1001&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  |-&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|        −8 &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1000 1000&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1111 0111&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1111 1000&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  |-&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|        −9 &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1000 1001&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1111 0110&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1111 0111&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  |-&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|       −10 &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1000 1010&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1111 0101&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1111 0110&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  |-&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|       −11 &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1000 1011&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1111 0100&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1111 0101&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  |-&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|      −127 &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1111 1111&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1000 0000&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1000 0001&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  |-&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|      −128 &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|         — &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|         — &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
  | align=&amp;quot;right&amp;quot;|  &amp;lt;code&amp;gt;1000 0000&amp;lt;/code&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
== Дополнительный код в иной системе счисления ==&lt;br /&gt;
Тот же принцип можно использовать и в компьютерном представлении любой [[Система счисления|системы счисления]], например, для [[Десятичная система счисления|десятичных чисел]].&lt;br /&gt;
&lt;br /&gt;
=== Преобразования на примере десятичной системы счисления&amp;lt;ref&amp;gt;{{Cite web |url=http://cs.fit.edu/~wds/classes/adm/Lectures/TensComplement.pdf |title=Florida Tech |access-date=2020-11-28 |archive-date=2016-10-08 |archive-url=https://web.archive.org/web/20161008132906/http://cs.fit.edu/~wds/classes/adm/Lectures/TensComplement.pdf |url-status=live }}&amp;lt;/ref&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
==== Положительное число ====&lt;br /&gt;
Изменение значений текущих разрядов числа не производится, но дописывается знаковый старший разряд, значение которого равно 0. Например число [+12&#039;345] будет иметь следующее представление - [012&#039;345]&lt;br /&gt;
&lt;br /&gt;
==== Отрицательное число ====&lt;br /&gt;
Дописываем знаковый старший разряд, равный большей цифре данной [[Система счисления|системы счисления]], в нашем случае - это 9, а также изменяем остальные разряды по определённому правилу; пусть значение цифры каждого разряда будет представлено переменной &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;, кроме знакового, тогда представим следующий алгоритм действий:&lt;br /&gt;
&lt;br /&gt;
# Присвоим переменной &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; новое значение, равное выражению &amp;lt;math&amp;gt;9 - x&amp;lt;/math&amp;gt; (процесс получения обратного кода) - например отрицательное число [&#039;&#039;-12345&#039;&#039;] в прямом коде от старшего к младшему разряду будет иметь вид [9&#039;&#039;&#039;12345&#039;&#039;], где &amp;lt;math&amp;gt;9&amp;lt;/math&amp;gt; - знаковая цифра, а в обратном представлении кода будет иметь следующий вид - [9&#039;87654].&lt;br /&gt;
# К результирующему числу прибавим &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;, так число [9&#039;87654] (первое дополнение) будет иметь вид [987&#039;655] (доп. код).&lt;br /&gt;
# Если возникла ситуация переноса разряда, в результате которого образовался новый разряд, то его (старший разряд) опускаем, а результирующее число считаем положительным. Результирующее положительное число будет одинаково представлено, как в прямом, так и в дополнительном коде. Например, имея возможность представить в таком виде отрицательный и положительный нуль, разберём их перевод в дополнительный код (1 знаковый и 4 дополнительных разряда):&lt;br /&gt;
#* [+0] в прямом коде [0&#039;0000]. Первое и второе дополнения равны [0&#039;0000].&lt;br /&gt;
#* [-0] в прямом коде [9&#039;0000]. Первое дополнение - [9&#039;9999]. При получении второго дополнения старший разряд числа [(1)0&#039;0000] опускаем и получаем результирующее значение [0&#039;0000], как у числа [+0].&lt;br /&gt;
&lt;br /&gt;
Идея представления десятичного (как и любого другого) числа в дополнительном коде, идентична правилам для двоичной системы счисления и может использоваться в гипотетическом процессоре:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
 ! Привычное&lt;br /&gt;
представление&lt;br /&gt;
!Прямой&lt;br /&gt;
код&lt;br /&gt;
! Первое&lt;br /&gt;
дополнение&lt;br /&gt;
!Второе&lt;br /&gt;
дополнение&lt;br /&gt;
|-&lt;br /&gt;
|...&lt;br /&gt;
|...&lt;br /&gt;
|...&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
 | +13&lt;br /&gt;
|0&#039;0013&lt;br /&gt;
|0&#039;0013&lt;br /&gt;
|0&#039;0013&lt;br /&gt;
 |-&lt;br /&gt;
 | +12&lt;br /&gt;
|0&#039;0012&lt;br /&gt;
|0&#039;0012&lt;br /&gt;
|0&#039;0012&lt;br /&gt;
 |-&lt;br /&gt;
 | +11&lt;br /&gt;
|0&#039;0011&lt;br /&gt;
|0&#039;0011&lt;br /&gt;
|0&#039;0011&lt;br /&gt;
 |-&lt;br /&gt;
 | +10&lt;br /&gt;
|0&#039;0010&lt;br /&gt;
|0&#039;0010&lt;br /&gt;
|0&#039;0010&lt;br /&gt;
 |-&lt;br /&gt;
 | +9&lt;br /&gt;
|0&#039;0009&lt;br /&gt;
|0&#039;0009&lt;br /&gt;
|0&#039;0009&lt;br /&gt;
 |-&lt;br /&gt;
 | +8&lt;br /&gt;
|0&#039;0008&lt;br /&gt;
|0&#039;0008&lt;br /&gt;
|0&#039;0008&lt;br /&gt;
|-&lt;br /&gt;
|...&lt;br /&gt;
|...&lt;br /&gt;
|...&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
 | +2&lt;br /&gt;
|0&#039;0002&lt;br /&gt;
|0&#039;0002&lt;br /&gt;
|0&#039;0002&lt;br /&gt;
 |-&lt;br /&gt;
 | +1&lt;br /&gt;
|0&#039;0001&lt;br /&gt;
|0&#039;0001&lt;br /&gt;
|0&#039;0001&lt;br /&gt;
|-&lt;br /&gt;
| +0&lt;br /&gt;
|0&#039;0000&lt;br /&gt;
|0&#039;0000&lt;br /&gt;
|0&#039;0000&lt;br /&gt;
|-&lt;br /&gt;
 | -0&lt;br /&gt;
|9&#039;0000&lt;br /&gt;
|9&#039;9999&lt;br /&gt;
|0&#039;0000&lt;br /&gt;
 |-&lt;br /&gt;
 | -1&lt;br /&gt;
|9&#039;0001&lt;br /&gt;
|9&#039;9998&lt;br /&gt;
|9&#039;9999&lt;br /&gt;
 |-&lt;br /&gt;
 | -2&lt;br /&gt;
|9&#039;0002&lt;br /&gt;
|9&#039;9997&lt;br /&gt;
|9&#039;9998&lt;br /&gt;
 |-&lt;br /&gt;
 | -3&lt;br /&gt;
|9&#039;0003&lt;br /&gt;
|9&#039;9996&lt;br /&gt;
|9&#039;9997&lt;br /&gt;
 |-&lt;br /&gt;
 | -4&lt;br /&gt;
|9&#039;0004&lt;br /&gt;
|9&#039;9995&lt;br /&gt;
|9&#039;9996&lt;br /&gt;
|-&lt;br /&gt;
|...&lt;br /&gt;
|...&lt;br /&gt;
|...&lt;br /&gt;
|...&lt;br /&gt;
|-&lt;br /&gt;
 | -9&lt;br /&gt;
|9&#039;0009&lt;br /&gt;
|9&#039;9990&lt;br /&gt;
|9&#039;9991&lt;br /&gt;
|-&lt;br /&gt;
| -10&lt;br /&gt;
|9&#039;0010&lt;br /&gt;
|9&#039;9989&lt;br /&gt;
|9&#039;9990&lt;br /&gt;
|-&lt;br /&gt;
| -11&lt;br /&gt;
|9&#039;0011&lt;br /&gt;
|9&#039;9988&lt;br /&gt;
|9&#039;9989&lt;br /&gt;
|-&lt;br /&gt;
 | -12&lt;br /&gt;
|9&#039;0012&lt;br /&gt;
|9&#039;9987&lt;br /&gt;
|9&#039;9988&lt;br /&gt;
|-&lt;br /&gt;
| -13&lt;br /&gt;
|9&#039;0013&lt;br /&gt;
|9&#039;9986&lt;br /&gt;
|9&#039;9987&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Арифметика в дополнительном коде ===&lt;br /&gt;
&lt;br /&gt;
==== Сложение и вычитание ====&lt;br /&gt;
Оба числа представляются в дополнительном коде. Дополнительный код обоих чисел имеет одинаковое количество разрядов. В данном представлении числа складываются.&lt;br /&gt;
&lt;br /&gt;
Знаки разные: Если в процессе сложения образуется выходящий за пределы первоначальных чисел разряд, то он опускается. Результирующее значение считается &#039;&#039;&#039;положительным&#039;&#039;&#039;, где прямой и дополнительный коды являются идентичными. Иначе — &#039;&#039;&#039;отрицательным&#039;&#039;&#039; в виде &#039;&#039;&#039;дополнительного кода&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
&lt;br /&gt;
* [1234] + [-78] → [0’1234] + [9’9922] = [(1)0’1156] = [1156].&lt;br /&gt;
* [-1234] + [78] → [9’8766] + [0’0078] = [9’8844] = [-1156].&lt;br /&gt;
&lt;br /&gt;
Знаки одинаковые:&lt;br /&gt;
&lt;br /&gt;
* Положительные числа. Разряд не опускается, результат положительный.&lt;br /&gt;
* Отрицательные числа. Разряд опускается, результат отрицательный в дополнительном коде.&lt;br /&gt;
&lt;br /&gt;
Например:&lt;br /&gt;
&lt;br /&gt;
* [1234] + [78] → [0’1234] + [0’0078] = [0’1312] = [1312].&lt;br /&gt;
* [-1234] + [-78] → [9’8766] + [9’9922] = [(1)9’8688] → (первое дополнение) [0’1311] → (второе дополнение или обычное представление) [-1312]. При переводе из дополнительного кода в обычное представление результирующее значение является абсолютным.&lt;br /&gt;
&lt;br /&gt;
== Преобразование в дополнительный код ==&lt;br /&gt;
&lt;br /&gt;
=== Из прямого в дополнительный код ===&lt;br /&gt;
Преобразование числа из прямого кода в дополнительный осуществляется по следующему алгоритму.&lt;br /&gt;
# Если старший (знаковый) разряд числа, записанного в прямом коде, равен 0, то число положительное и никаких преобразований не делается;&lt;br /&gt;
# Если старший (знаковый) разряд числа, записанного в прямом коде, равен 1, то число отрицательное, все разряды числа, кроме знакового, [[инвертирование|инвертируются]], а к результату прибавляется 1.&lt;br /&gt;
&lt;br /&gt;
Для примера преобразуем отрицательное число &amp;lt;math&amp;gt;-5&amp;lt;/math&amp;gt;, записанное в прямом коде, в дополнительный код.&lt;br /&gt;
&lt;br /&gt;
Прямой код отрицательного числа &amp;lt;math&amp;gt;-5&amp;lt;/math&amp;gt;: &amp;lt;br&amp;gt;&amp;lt;code&amp;gt;1000 0101&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Инвертируем все разряды числа, кроме знакового, получая таким образом [[Обратный код (представление числа)|обратный код]] (первое дополнение) отрицательного числа &amp;lt;math&amp;gt;-5&amp;lt;/math&amp;gt;: &amp;lt;br&amp;gt;&amp;lt;code&amp;gt;1111 1010&amp;lt;/code&amp;gt;&lt;br /&gt;
* Добавим к результату &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt;, получая таким образом дополнительный код (второе дополнение) отрицательного числа &amp;lt;math&amp;gt;-5&amp;lt;/math&amp;gt;: &amp;lt;br&amp;gt;&amp;lt;code&amp;gt;1111 1011&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Изменение знака числа ===&lt;br /&gt;
Для преобразования отрицательного числа &amp;lt;math&amp;gt;-5&amp;lt;/math&amp;gt;, записанного в дополнительном коде, в положительное число &amp;lt;math&amp;gt;5&amp;lt;/math&amp;gt;, записанное в прямом коде, используется похожий алгоритм:&lt;br /&gt;
&lt;br /&gt;
* Инвертируем все разряды отрицательного числа &amp;lt;math&amp;gt;-5&amp;lt;/math&amp;gt;, получая таким образом положительное число 4 в прямом коде: &amp;lt;br&amp;gt;&amp;lt;code&amp;gt;0000 0100&amp;lt;/code&amp;gt;&lt;br /&gt;
* Добавив к результату &amp;lt;math&amp;gt;1&amp;lt;/math&amp;gt; получим положительное число &amp;lt;math&amp;gt;5&amp;lt;/math&amp;gt; в прямом коде: &amp;lt;br&amp;gt;&amp;lt;code&amp;gt;0000 0101&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И проверим, сложив получившееся записи &amp;lt;math&amp;gt;5&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;-5&amp;lt;/math&amp;gt;:&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;0000 0101 + 1111 1011 = 0000 0000 &#039;&#039;(пятый и старше разряды выбрасываются)&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== p-адические числа ==&lt;br /&gt;
&lt;br /&gt;
В системе [[p-адическое число|&#039;&#039;p&#039;&#039;-адических чисел]] изменение знака числа осуществляется преобразованием числа в его дополнительный код. Например, если используется 5-ричная система счисления, то число, противоположное 0001&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt; (1&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt;), равно 4444&amp;lt;sub&amp;gt;5&amp;lt;/sub&amp;gt; (−1&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Реализация алгоритма нахождения модуля для дополнительного кода ==&lt;br /&gt;
=== [[TurboBasic]] ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;basic&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
DEF FN TwosComplAbs%(a%)&lt;br /&gt;
    IF a% &amp;lt; 0 THEN a% = NOT(a% - 1)&lt;br /&gt;
    FN TwosComplAbs% = a%&lt;br /&gt;
END DEF&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pascal ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
function TwosComplAbs(a: integer): integer;&lt;br /&gt;
begin&lt;br /&gt;
    if (a &amp;lt; 0) then TwosComplAbs := (not a) + 1&lt;br /&gt;
    else TwosComplAbs := a;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== C/C++ ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
int twos_compl_abs(int a) &lt;br /&gt;
{&lt;br /&gt;
    if (a &amp;lt; 0) a = (~a) + 1;&lt;br /&gt;
    return a;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Реализация без ветвления ===&lt;br /&gt;
С помощью следующей формулы можно вычислить модуль числа без ветвления&amp;lt;ref&amp;gt;{{Cite web|url=https://graphics.stanford.edu/~seander/bithacks.html#IntegerAbs|title=Bit Twiddling Hacks|website=graphics.stanford.edu|access-date=2023-06-29|archive-date=2020-06-01|archive-url=https://web.archive.org/web/20200601123740/https://graphics.stanford.edu/~seander/bithacks.html#IntegerAbs|url-status=live}}&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;|a| = (a\ \text{xor}\ (a\ \text{shr}\ (n-1))) - (a\ \text{shr}\ (n-1))&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где: &amp;lt;math&amp;gt;\text{xor}&amp;lt;/math&amp;gt; — Операция [[Исключающее «или»|исключающего &amp;quot;или&amp;quot;]];&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\text{shr}&amp;lt;/math&amp;gt; — [[Битовый сдвиг#Арифметический (знаковый) сдвиг|Арифметический сдвиг]] вправо;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; — Количество двоичных разрядов&lt;br /&gt;
&lt;br /&gt;
Следующий код на языке [[Си (язык программирования)|Си]] вычисляет модуль по этой формуле:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int32_t fastabs32(int32_t num)&lt;br /&gt;
{&lt;br /&gt;
    int32_t mask = (num &amp;gt;&amp;gt; 31);&lt;br /&gt;
    return ((num ^ mask) - mask);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Преимущества и недостатки ==&lt;br /&gt;
&lt;br /&gt;
=== Преимущества ===&lt;br /&gt;
&lt;br /&gt;
* Общие инструкции (процессора) для сложения, вычитания и левого сдвига для знаковых и беззнаковых чисел (различия только в арифметических флагах, которые нужно проверять для контроля переполнения в результате).&lt;br /&gt;
* Отсутствие числа «[[−0 (программирование)|минус ноль]]».&lt;br /&gt;
&lt;br /&gt;
=== Недостатки ===&lt;br /&gt;
&lt;br /&gt;
* Представление отрицательного числа визуально не читается по обычным правилам, для его восприятия нужен особый навык или дополнительные вычисления для приведения в обычный вид.&lt;br /&gt;
* В некоторых представлениях (например, [[двоично-десятичный код]]) или их составных частях (например, мантисса числа с [[плавающая запятая|плавающей запятой]]) дополнительное кодирование неудобно.&lt;br /&gt;
* Модуль наибольшего числа не равен модулю наименьшего числа. Например, для восьмибитного целого со знаком, максимальное число: 127&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt; = 01111111&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, минимальное число: -128&amp;lt;sub&amp;gt;10&amp;lt;/sub&amp;gt; = 10000000&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;. Таким образом, не для любого числа существует противоположное. Операция изменения знака может потребовать дополнительной проверки.&lt;br /&gt;
&lt;br /&gt;
== Пример программного преобразования ==&lt;br /&gt;
Если происходит чтение данных из файла или области памяти, где они хранятся в двоичном дополнительном коде (например, [[WAV|WAV файл]]), может оказаться необходимым преобразовать байты. Если данные хранятся в 8 битах, необходимо, чтобы значения 128-255 были отрицательными.&lt;br /&gt;
=== C# .NET / C style ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
byte b1 = 254; //11111110 (бинарное)&lt;br /&gt;
byte b2 = 121; //01111001 (бинарное)&lt;br /&gt;
byte c = 1&amp;lt;&amp;lt;(sizeof(byte)*8-1);  //2 возводится в степень 7. Результат: 10000000 (бинарное)&lt;br /&gt;
byte b1Conversion=(c ^ b1) - c;  //Результат: -2. А фактически, двоичный дополнительный код.&lt;br /&gt;
byte b2Conversion=(c ^ b2) - c;  //Результат остаётся 121, потому что знаковый разряд - ноль.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Расширение знака ==&lt;br /&gt;
&#039;&#039;&#039;Расширение знака&#039;&#039;&#039; (&#039;&#039;[[Английский язык|англ.]] sign extension&amp;lt;sup&amp;gt;[[:en:Sign_extension|[en]]]&amp;lt;/sup&amp;gt;&#039;&#039;) — операция над двоичным числом, которая позволяет увеличить разрядность числа с сохранением знака и значения. Выполняется добавлением цифр со стороны старшего значащего разряда. Если число положительное (старший разряд равен 0), то добавляются нули, если отрицательное (старший разряд равен 1) — единицы.&lt;br /&gt;
&lt;br /&gt;
=== Пример  ===&lt;br /&gt;
&#039;&#039;&#039;Примечание&#039;&#039;&#039;: &#039;&#039;Добавленные цифры подчёркнуты&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Десятичное число&lt;br /&gt;
!Двоичное число&lt;br /&gt;
(8 разрядов)&lt;br /&gt;
!Двоичное число&lt;br /&gt;
(16 разрядов)&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|&amp;lt;code&amp;gt;0000 1010&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;lt;u&amp;gt;0000 0000&amp;lt;/u&amp;gt; 0000 1010&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|−15&lt;br /&gt;
|&amp;lt;code&amp;gt;1111 0001&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;lt;u&amp;gt;1111 1111&amp;lt;/u&amp;gt; 1111 0001&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[Обратный код (представление числа)|Обратный код]]&lt;br /&gt;
* [[Прямой код (представление числа)|Прямой код]]&lt;br /&gt;
* [[Целый тип]]&lt;br /&gt;
* [[Алгоритм Бута]] — специализированный алгоритм умножения для чисел в дополнительном коде&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
* {{книга&lt;br /&gt;
 |автор         = Behrooz Parhami &lt;br /&gt;
 |часть         = 2.3. Complement Representation, 2.4. Two&#039;s- and 1&#039;s-complement numbers&lt;br /&gt;
 |ссылка часть  = &lt;br /&gt;
 |заглавие      = Computer Arithmetic: Algorithms and Hardware Designs&lt;br /&gt;
 |оригинал      = &lt;br /&gt;
 |ссылка        = http://www.ece.ucsb.edu/~parhami/text_comp_arit.htm&lt;br /&gt;
 |викитека      = &lt;br /&gt;
 |ответственный = &lt;br /&gt;
 |издание       = &lt;br /&gt;
 |место         = New York&lt;br /&gt;
 |издательство  = [[Oxford University]] Press&lt;br /&gt;
 |год           = 2000&lt;br /&gt;
 |том           = &lt;br /&gt;
 |pages         = 22-27&lt;br /&gt;
 |allpages      = 510&lt;br /&gt;
 |серия         = &lt;br /&gt;
 |isbn          = 0-19-512583-5&lt;br /&gt;
 |тираж         = &lt;br /&gt;
 |ref           = Parhami&lt;br /&gt;
}}&lt;br /&gt;
* {{книга&lt;br /&gt;
|заглавие = Прикладная теория цифровых автоматов&lt;br /&gt;
|часть = &lt;br /&gt;
|оригинал = &lt;br /&gt;
|автор = Самофалов К.Г., Романкевич А.М., Валуйский В.Н., Каневский Ю.С., Пиневич М.М.&lt;br /&gt;
|ссылка = &lt;br /&gt;
|isbn = &lt;br /&gt;
|страниц = 375&lt;br /&gt;
|год = 1987&lt;br /&gt;
|место =  К.&lt;br /&gt;
|издательство = Вища школа&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
{{примечания}}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Компьютерная арифметика]]&lt;/div&gt;</summary>
		<author><name>85.90.119.220</name></author>
	</entry>
</feed>