Для определения десятичных чисел, соответствующих двоичным кодам 8-разрядного представления целых чисел, нужно учитывать, что разрядность в 8 бит может представлять как положительные, так и отрицательные числа. В этом случае используется представление чисел в дополнительном коде (two's complement).
Дополнительный код (Two's Complement):
- В дополнительном коде первый (старший) бит указывает знак числа:
- 0 — положительное число.
- 1 — отрицательное число.
- Положительное число читается как обычное двоичное число.
- Отрицательное число находится путём инверсии всех битов и добавления 1 к младшему разряду.
Пример разбора:
а) 00100111
- Первый бит — 0, значит, число положительное.
- Остальные биты — 0100111.
- Переводим в десятичное:
- ( 0 \times 2^7 + 0 \times 2^6 + 1 \times 2^5 + 0 \times 2^4 + 0 \times 2^3 + 1 \times 2^2 + 1 \times 2^1 + 1 \times 2^0 )
- ( 0 + 0 + 32 + 0 + 0 + 4 + 2 + 1 = 39 )
б) 11001110
- Первый бит — 1, значит, число отрицательное.
- Инвертируем все биты: 00110001.
- Добавляем 1: 00110001 + 1 = 00110010.
- Переводим в десятичное:
- ( 0 \times 2^7 + 0 \times 2^6 + 1 \times 2^5 + 1 \times 2^4 + 0 \times 2^3 + 0 \times 2^2 + 1 \times 2^1 + 0 \times 2^0 )
- ( 0 + 0 + 32 + 16 + 0 + 0 + 2 + 0 = 50 )
- Добавляем знак: -50.
в) 10101010
- Первый бит — 1, значит, число отрицательное.
- Инвертируем все биты: 01010101.
- Добавляем 1: 01010101 + 1 = 01010110.
- Переводим в десятичное:
- ( 0 \times 2^7 + 1 \times 2^6 + 0 \times 2^5 + 1 \times 2^4 + 0 \times 2^3 + 1 \times 2^2 + 1 \times 2^1 + 0 \times 2^0 )
- ( 0 + 64 + 0 + 16 + 0 + 4 + 2 + 0 = 86 )
- Добавляем знак: -86.
г) 01111110
- Первый бит — 0, значит, число положительное.
- Остальные биты — 1111110.
- Переводим в десятичное:
- ( 0 \times 2^7 + 1 \times 2^6 + 1 \times 2^5 + 1 \times 2^4 + 1 \times 2^3 + 1 \times 2^2 + 1 \times 2^1 + 0 \times 2^0 )
- ( 0 + 64 + 32 + 16 + 8 + 4 + 2 + 0 = 126 )
Итак, десятичные числа, соответствующие данным двоичным кодам, следующие:
а) 00100111 — ( 39 )
б) 11001110 — ( -50 )
в) 10101010 — ( -86 )
г) 01111110 — ( 126 )