Обсуждение:Дополнительный код
Перейти к навигации
Перейти к поиску
Необходимо пояснить приведенный пример программного преобразования:
byte b1 = 254; //11111110 (бинарное)
byte b2 = 121; //01111001 (бинарное)
int c = (int)Math.Pow(2,(sizeof(byte)*8)-1); //2 возводится в степень 7. Результат: 10000000 (бинарное)
int b1Conversion=(c ^ b1) - c; //Результат: -2. А фактически, двоичный дополнительный код.
int b2Conversion=(c ^ b2) - c; //Результат остается 121, потому что знаковый разряд - нуль.
На мой взгляд, если ^ - исключающее или, то выражение: (c ^ bn) – c , будет давать результат равный bn, т.е. bnConversion == bn.
193.32.20.1 09:06, 19 июня 2009 (UTC)
Дополнительный код десятичных чисел
[править код]Если продолжить таблицу по убыванию дополнительного кода, то после 6000 пойдёт 5999. Последнее будет уже положительным? ChimMAG 02:16, 20 января 2015 (UTC)
- Нет. Самым большим положительным числом будет 4999, а самым отрицательным -- 5000. --82.69.159.206 13:54, 20 сентября 2017 (UTC)