Что такое знаковое число
Не существует окончательного критерия, по которому любое из представлений является универсально превосходящим. Для целых чисел представление, используемое в большинстве современных вычислительных устройств, является дополнением до двух, хотя в мэйнфреймах серии Unisys ClearPath Dorado используется дополнение до единиц.
СОДЕРЖАНИЕ
История
Знаковое представление величины
Дополнение
Двоичное значение | Дополнительное толкование | Неподписанная интерпретация |
---|---|---|
00000000 | +0 | 0 |
00000001 | 1 | 1 |
⋮ | ⋮ | ⋮ |
01111101 | 125 | 125 |
01111110 | 126 | 126 |
01111111 | 127 | 127 |
10000000 | −127 | 128 |
10000001 | −126 | 129 |
10000010 | −125 | 130 |
⋮ | ⋮ | ⋮ |
11111101 | −2 | 253 |
11111110 | −1 | 254 |
11111111 | −0 | 255 |
Чтобы сложить два числа, представленных в этой системе, выполняется обычное двоичное сложение, но затем необходимо выполнить сквозной перенос : то есть добавить любой результирующий перенос обратно в результирующую сумму. Чтобы понять, почему это необходимо, рассмотрим следующий пример, показывающий случай добавления −1 (11111110) к +2 (00000010):
В предыдущем примере первое двоичное сложение дает 00000000, что неверно. Правильный результат (00000001) появляется только при добавлении переноса.
Два дополнения
Двоичное значение | Интерпретация дополнения до двух | Неподписанная интерпретация |
---|---|---|
00000000 | 0 | 0 |
00000001 | 1 | 1 |
⋮ | ⋮ | ⋮ |
01111110 | 126 | 126 |
01111111 | 127 | 127 |
10000000 | −128 | 128 |
10000001 | −127 | 129 |
10000010 | −126 | 130 |
⋮ | ⋮ | ⋮ |
11111110 | −2 | 254 |
11111111 | −1 | 255 |
Более простой способ получить отрицание числа в дополнении до двух выглядит следующим образом:
Пример 1 | Пример 2 | |
---|---|---|
1. Начиная справа, найдите первую «1» | 0010100 1 | 00101 1 00 |
2. Инвертируйте все биты слева от этой «1». | 1101011 1 | 11010 100 |
Пример: для +2, что равно 00000010 в двоичном формате (символ
X означает «инвертировать все биты в X»):
Смещение двоичного
Двоичное значение | Интерпретация Excess-128 | Неподписанная интерпретация |
---|---|---|
00000000 | −128 | 0 |
00000001 | −127 | 1 |
⋮ | ⋮ | ⋮ |
01111111 | −1 | 127 |
10000000 | 0 | 128 |
10000001 | 1 | 129 |
⋮ | ⋮ | ⋮ |
11111111 | +127 | 255 |
База −2
Диапазон чисел, которые могут быть представлены, асимметричен. Если слово имеет четное число битов, величина наибольшего отрицательного числа, которое может быть представлено, вдвое больше, чем наибольшее положительное число, которое может быть представлено, и наоборот, если слово имеет нечетное число битов.
Сравнительная таблица
В следующей таблице показаны положительные и отрицательные целые числа, которые могут быть представлены с помощью четырех битов.
Десятичный | Без подписи | Знак и величина | Дополнение | Два дополнения | Превышение-8 (необъективно) | База −2 |
---|---|---|---|---|---|---|
+16 | N / A | N / A | N / A | N / A | N / A | N / A |
+15 | 1111 | N / A | N / A | N / A | N / A | N / A |
+14 | 1110 | N / A | N / A | N / A | N / A | N / A |
+13 | 1101 | N / A | N / A | N / A | N / A | N / A |
+12 | 1100 | N / A | N / A | N / A | N / A | N / A |
+11 | 1011 | N / A | N / A | N / A | N / A | N / A |
+10 | 1010 | N / A | N / A | N / A | N / A | N / A |
+9 | 1001 | N / A | N / A | N / A | N / A | N / A |
+8 | 1000 | N / A | N / A | N / A | N / A | N / A |
+7 | 0111 | 0111 | 0111 | 0111 | 1111 | N / A |
+6 | 0110 | 0110 | 0110 | 0110 | 1110 | N / A |
+5 | 0101 | 0101 | 0101 | 0101 | 1101 | 0101 |
+4 | 0100 | 0100 | 0100 | 0100 | 1100 | 0100 |
+3 | 0011 | 0011 | 0011 | 0011 | 1011 | 0111 |
+2 | 0010 | 0010 | 0010 | 0010 | 1010 | 0110 |
+1 | 0001 | 0001 | 0001 | 0001 | 1001 | 0001 |
+0 | 0000 | 0000 | 0000 | 0000 | 1000 | 0000 |
−0 | 1000 | 1111 | ||||
−1 | N / A | 1001 | 1110 | 1111 | 0111 | 0011 |
−2 | N / A | 1010 | 1101 | 1110 | 0110 | 0010 |
−3 | N / A | 1011 | 1100 | 1101 | 0101 | 1101 |
−4 | N / A | 1100 | 1011 | 1100 | 0100 | 1100 |
−5 | N / A | 1101 | 1010 | 1011 | 0011 | 1111 |
−6 | N / A | 1110 | 1001 | 1010 | 0010 | 1110 |
−7 | N / A | 1111 | 1000 | 1001 | 0001 | 1001 |
−8 | N / A | N / A | N / A | 1000 | 0000 | 1000 |
−9 | N / A | N / A | N / A | N / A | N / A | 1011 |
−10 | N / A | N / A | N / A | N / A | N / A | 1010 |
−11 | N / A | N / A | N / A | N / A | N / A | N / A |
Та же таблица, если смотреть на это «учитывая эти двоичные биты, какое число интерпретируется системой представления»:
Двоичный | Без подписи | Знак и величина | Дополнение | Два дополнения | Превышение-8 | База −2 |
---|---|---|---|---|---|---|
0000 | 0 | 0 | 0 | 0 | −8 | 0 |
0001 | 1 | 1 | 1 | 1 | −7 | 1 |
0010 | 2 | 2 | 2 | 2 | −6 | −2 |
0011 | 3 | 3 | 3 | 3 | −5 | −1 |
0100 | 4 | 4 | 4 | 4 | −4 | 4 |
0101 | 5 | 5 | 5 | 5 | −3 | 5 |
0110 | 6 | 6 | 6 | 6 | −2 | 2 |
0111 | 7 | 7 | 7 | 7 | −1 | 3 |
1000 | 8 | −0 | −7 | −8 | 0 | −8 |
1001 | 9 | −1 | −6 | −7 | 1 | −7 |
1010 | 10 | −2 | −5 | −6 | 2 | −10 |
1011 | 11 | −3 | −4 | −5 | 3 | −9 |
1100 | 12 | −4 | −3 | −4 | 4 | −4 |
1101 | 13 | −5 | −2 | −3 | 5 | −3 |
1110 | 14 | −6 | −1 | −2 | 6 | −6 |
1111 | 15 | −7 | −0 | −1 | 7 | −5 |
Другие системы
Аналогичный метод используется в стандартах сжатия видео H.264 / MPEG-4 AVC и H.265 High Efficiency Video Coding для расширения экспоненциального кодирования Голомба до отрицательных чисел. В этом расширении младший бит является почти знаковым; ноль имеет тот же самый младший бит (0), что и все отрицательные числа. Этот выбор приводит к тому, что представимое положительное число наибольшей величины на единицу больше отрицательного числа наибольшей величины, в отличие от дополнения до двух или зигзагообразного кодирования буферов протокола.
Не существует окончательного критерия, по которому любое из представлений является универсально превосходящим. Для целых чисел представление, используемое в большинстве современных вычислительных устройств, является дополнением до двух, хотя в мэйнфреймах серии Unisys ClearPath Dorado используется дополнение до единиц.
СОДЕРЖАНИЕ
История
Знаковое представление величины
Дополнение
Двоичное значение | Дополнительное толкование | Неподписанная интерпретация |
---|---|---|
00000000 | +0 | 0 |
00000001 | 1 | 1 |
⋮ | ⋮ | ⋮ |
01111101 | 125 | 125 |
01111110 | 126 | 126 |
01111111 | 127 | 127 |
10000000 | −127 | 128 |
10000001 | −126 | 129 |
10000010 | −125 | 130 |
⋮ | ⋮ | ⋮ |
11111101 | −2 | 253 |
11111110 | −1 | 254 |
11111111 | −0 | 255 |
Чтобы сложить два числа, представленных в этой системе, выполняется обычное двоичное сложение, но затем необходимо выполнить сквозной перенос : то есть добавить любой результирующий перенос обратно в результирующую сумму. Чтобы понять, почему это необходимо, рассмотрим следующий пример, показывающий случай добавления −1 (11111110) к +2 (00000010):
В предыдущем примере первое двоичное сложение дает 00000000, что неверно. Правильный результат (00000001) появляется только при добавлении переноса.
Два дополнения
Двоичное значение | Интерпретация дополнения до двух | Неподписанная интерпретация |
---|---|---|
00000000 | 0 | 0 |
00000001 | 1 | 1 |
⋮ | ⋮ | ⋮ |
01111110 | 126 | 126 |
01111111 | 127 | 127 |
10000000 | −128 | 128 |
10000001 | −127 | 129 |
10000010 | −126 | 130 |
⋮ | ⋮ | ⋮ |
11111110 | −2 | 254 |
11111111 | −1 | 255 |
Более простой способ получить отрицание числа в дополнении до двух выглядит следующим образом:
Пример 1 | Пример 2 | |
---|---|---|
1. Начиная справа, найдите первую «1» | 0010100 1 | 00101 1 00 |
2. Инвертируйте все биты слева от этой «1». | 1101011 1 | 11010 100 |
Пример: для +2, что равно 00000010 в двоичном формате (символ
X означает «инвертировать все биты в X»):
Смещение двоичного
Двоичное значение | Интерпретация Excess-128 | Неподписанная интерпретация |
---|---|---|
00000000 | −128 | 0 |
00000001 | −127 | 1 |
⋮ | ⋮ | ⋮ |
01111111 | −1 | 127 |
10000000 | 0 | 128 |
10000001 | 1 | 129 |
⋮ | ⋮ | ⋮ |
11111111 | +127 | 255 |
База −2
Диапазон чисел, которые могут быть представлены, асимметричен. Если слово имеет четное число битов, величина наибольшего отрицательного числа, которое может быть представлено, вдвое больше, чем наибольшее положительное число, которое может быть представлено, и наоборот, если слово имеет нечетное число битов.
Сравнительная таблица
В следующей таблице показаны положительные и отрицательные целые числа, которые могут быть представлены с помощью четырех битов.
Десятичный | Без подписи | Знак и величина | Дополнение | Два дополнения | Превышение-8 (необъективно) | База −2 |
---|---|---|---|---|---|---|
+16 | N / A | N / A | N / A | N / A | N / A | N / A |
+15 | 1111 | N / A | N / A | N / A | N / A | N / A |
+14 | 1110 | N / A | N / A | N / A | N / A | N / A |
+13 | 1101 | N / A | N / A | N / A | N / A | N / A |
+12 | 1100 | N / A | N / A | N / A | N / A | N / A |
+11 | 1011 | N / A | N / A | N / A | N / A | N / A |
+10 | 1010 | N / A | N / A | N / A | N / A | N / A |
+9 | 1001 | N / A | N / A | N / A | N / A | N / A |
+8 | 1000 | N / A | N / A | N / A | N / A | N / A |
+7 | 0111 | 0111 | 0111 | 0111 | 1111 | N / A |
+6 | 0110 | 0110 | 0110 | 0110 | 1110 | N / A |
+5 | 0101 | 0101 | 0101 | 0101 | 1101 | 0101 |
+4 | 0100 | 0100 | 0100 | 0100 | 1100 | 0100 |
+3 | 0011 | 0011 | 0011 | 0011 | 1011 | 0111 |
+2 | 0010 | 0010 | 0010 | 0010 | 1010 | 0110 |
+1 | 0001 | 0001 | 0001 | 0001 | 1001 | 0001 |
+0 | 0000 | 0000 | 0000 | 0000 | 1000 | 0000 |
−0 | 1000 | 1111 | ||||
−1 | N / A | 1001 | 1110 | 1111 | 0111 | 0011 |
−2 | N / A | 1010 | 1101 | 1110 | 0110 | 0010 |
−3 | N / A | 1011 | 1100 | 1101 | 0101 | 1101 |
−4 | N / A | 1100 | 1011 | 1100 | 0100 | 1100 |
−5 | N / A | 1101 | 1010 | 1011 | 0011 | 1111 |
−6 | N / A | 1110 | 1001 | 1010 | 0010 | 1110 |
−7 | N / A | 1111 | 1000 | 1001 | 0001 | 1001 |
−8 | N / A | N / A | N / A | 1000 | 0000 | 1000 |
−9 | N / A | N / A | N / A | N / A | N / A | 1011 |
−10 | N / A | N / A | N / A | N / A | N / A | 1010 |
−11 | N / A | N / A | N / A | N / A | N / A | N / A |
Та же таблица, если смотреть на это «учитывая эти двоичные биты, какое число интерпретируется системой представления»:
Двоичный | Без подписи | Знак и величина | Дополнение | Два дополнения | Превышение-8 | База −2 |
---|---|---|---|---|---|---|
0000 | 0 | 0 | 0 | 0 | −8 | 0 |
0001 | 1 | 1 | 1 | 1 | −7 | 1 |
0010 | 2 | 2 | 2 | 2 | −6 | −2 |
0011 | 3 | 3 | 3 | 3 | −5 | −1 |
0100 | 4 | 4 | 4 | 4 | −4 | 4 |
0101 | 5 | 5 | 5 | 5 | −3 | 5 |
0110 | 6 | 6 | 6 | 6 | −2 | 2 |
0111 | 7 | 7 | 7 | 7 | −1 | 3 |
1000 | 8 | −0 | −7 | −8 | 0 | −8 |
1001 | 9 | −1 | −6 | −7 | 1 | −7 |
1010 | 10 | −2 | −5 | −6 | 2 | −10 |
1011 | 11 | −3 | −4 | −5 | 3 | −9 |
1100 | 12 | −4 | −3 | −4 | 4 | −4 |
1101 | 13 | −5 | −2 | −3 | 5 | −3 |
1110 | 14 | −6 | −1 | −2 | 6 | −6 |
1111 | 15 | −7 | −0 | −1 | 7 | −5 |
Другие системы
Аналогичный метод используется в стандартах сжатия видео H.264 / MPEG-4 AVC и H.265 High Efficiency Video Coding для расширения экспоненциального кодирования Голомба до отрицательных чисел. В этом расширении младший бит является почти знаковым; ноль имеет тот же самый младший бит (0), что и все отрицательные числа. Этот выбор приводит к тому, что представимое положительное число наибольшей величины на единицу больше отрицательного числа наибольшей величины, в отличие от дополнения до двух или зигзагообразного кодирования буферов протокола.