Число, хранящееся в дополнении до двух, инвертирует знак величины самого старшего бита (так что, например, для 16-битного числа старший бит равен -32768, а не +32768). Все остальные биты ведут себя как обычно. Следовательно, при выполнении математических операций с числами, состоящими из нескольких слов, старшее слово каждого числа следует рассматривать как дополнение до двух (поскольку его самый старший бит будет самым старшим битом всего числа), но все остальные слова в каждом числе следует рассматривать как беззнаковые величины.
Например, 16-битное число с дополнением до двух имеет разрядные значения (-32768, 16384, 8192, 4096, 2048, 1024, 512, 256, 128, 64, 32, 16, 8, 4, 2 и 1). Разделенные на две 8-битные части, эти части будут иметь разрядные значения (-32768, 16384, 8192, 4096, 2048, 1024, 512 и 256); и (128, 64, 32, 16, 8, 4, 2 и 1). Первый набор значений представляет собой 8-битное число с дополнением до двух, умноженное на 256; последний набор представляет собой 8-битное число без знака.
person
supercat
schedule
30.03.2012