1. Исходный код
Самый старший бит используется в качестве знакового бита (0 представляет положительное значение, 1 представляет отрицательное значение), а остальные биты представляют собой абсолютное значение самого значения (выраженное в двоичном формате).
Для простоты мы используем 1 байт для представления целого числа.
Исходный код +7: 00000111.
Исходный код -7: 10000111.
2. Обратный код
Если число положительное, его дополнение такое же, как и исходный код; если число отрицательное, знаковый бит равен 1, а остальные биты представляют собой инверсию исходного кода.
Для простоты мы используем 1 байт для представления целого числа:
Дополнение к +7: 00000111.
Дополнение к -7: 11111000.
3. Дополняющий код
Дополнительный код: если число положительное, его исходный код, дополнительный код и дополнение одинаковы; если число отрицательное, знаковый бит равен 1, а остальные биты представляют собой инверсию исходного кода, а затем весь код. число добавляется на 1. Для простоты мы используем 1 байт для представления целого числа:
Дополнение к +7: 00000111.
Дополнение к -7: 11111001.
Учитывая дополнение отрицательного числа, преобразуйте его в десятичное число. Шаги:
1. Во-первых, я вам возражу;
2. Преобразуйте его в десятичное число;
3. Прибавьте отрицательный знак и вычтите 1.
Например:
11111010, старший бит равен 1, что является отрицательным числом. Сначала инвертируйте каждый бит, чтобы получить 00000101, преобразуйте его в десятичное число, чтобы получить 5, добавьте знак минус, чтобы получить -5, а затем вычтите 1, чтобы получить -6.
Почему это отрицательное число, когда я привожу int a=232 к типу байта? ? ?