Различные способы представления целого числа со знаком
Целое число со знаком — это целое число, с которым связан положительный знак «+» или отрицательный знак «-». Поскольку компьютер понимает только двоичные данные, необходимо представлять эти целые числа со знаком в двоичной форме.
В двоичном формате целое число со знаком может быть представлено тремя способами:
- Подписанный бит.
- 1 дополнение.
- 2 дополнения.
Давайте посмотрим, почему дополнение 2 считается лучшим методом.
Бит со знаком Представление
В методе целочисленного представления со знаком соблюдаются следующие правила:
1. MSB (самый старший бит) представляет собой знак целого числа.
2. Величина представлена другими битами, отличными от MSB, т.е. (n-1) битами, где n — номер. бит.
3. Если число положительное, MSB равен 0, иначе 1.
4. Диапазон целочисленного представления n-битного числа со знаком задается как от –(2^{n-1}-1) до (2)^{n-1}-1.
Пример:
Let n = 4
Range:
–(2^{4-1}-1) to 2^{4-1}-1
= -(2^{3}-1) to 2^{3}-1
= -(7) to+7For 4 bit representation, minimum value=-7 and maximum value=+7
Представление бита со знаком:
Положительные числа | ||||
| Знак | Величина | Десятичное представление | ||
| 0 | 0 | 0 | 0 | +0 |
| 0 | 0 | 0 | 1 | +1 |
| 0 | 0 | 1 | 0 | +2 |
| 0 | 0 | 1 | 1 | +3 |
| 0 | 1 | 0 | 0 | +4 |
| 0 | 1 | 0 | 1 | +5 |
| 0 | 1 | 1 | 0 | +6 |
| 0 | 1 | 1 | 1 | +7 |
Отрицательные числа | ||||
| Знак | Величина | Десятичное представление | ||
| 1 | 0 | 0 | 0 | -0 |
| 1 | 0 | 0 | 1 | -1 |
| 1 | 0 | 1 | 0 | -2 |
| 1 | 0 | 1 | 1 | -3 |
| 1 | 1 | 0 | 0 | -4 |
| 1 | 1 | 0 | 1 | -5 |
| 1 | 1 | 1 | 0 | -6 |
| 1 | 1 | 1 | 1 | -7 |
Недостатки:
1. Для 0 существует два представления: -0 и +0, чего быть не должно, поскольку 0 не является ни -ve, ни +ve.
2. Из 2^n бит для представления мы можем использовать только 2^{n-1} бит.
3. Числа идут не в циклическом порядке, т.е. после наибольшего числа (в этом, например, +7) следующее число не является наименьшим числом (в этом, например, +0).
4. Для отрицательных чисел расширение со знаком не работает.
Пример:
Подписанное расширение для +5

Подписанное расширение для -5

5. Как мы можем видеть выше, для представления +ve, если 4 бита расширяются до 5 бит, необходимо просто добавить 0 в MSB.
6. Но если то же самое сделать в -ve представлении, мы не получим то же число. т.е. 10101 ≠ 11101.
Дополнение до 1 для целого числа со знаком
В представлении дополнения 1 используются следующие правила:
1. Для +ve чисел правила представления такие же, как и для целочисленного представления со знаком.
2. Для -ve чисел мы можем следовать любому из двух подходов:
- Запишите число +ve в двоичном формате и возьмите его дополнение до 1.
1’s complement of 0 = 1 and 1’s complement of 1 = 0
Example:
(-5) in 1’s complement:
+5 = 0101
-5 = 1010
- Напишите беззнаковое представление 2^n-1-X вместо –X.
Example:
–X = -5 for n=4
2^4-1-5=10 ->1010(Unsigned)
3. Диапазон целочисленного представления n-битного числа с дополнением до 1 задается как от –(2^{n-1}-1) до 2^{n-1}-1.
Представление дополнения 1:
| Положительные числа | ||
|---|---|---|
| Знак | Величина | Число |
| 0 | 0 0 0 | +0 |
| 0 | 0 0 1 | +1 |
| 0 | 0 1 0 | +2 |
| 0 | 0 1 1 | +3 |
| 0 | 1 0 0 | +4 |
| 0 | 1 0 1 | +5 |
| 0 | 1 1 0 | +6 |
| 0 | 1 1 1 | +7 |
| Отрицательные числа | ||
| Знак | Величина | Число |
| 1 | 0 0 0 | -7 |
| 1 | 0 0 1 | -6 |
| 1 | 0 1 0 | -5 |
| 1 | 0 1 1 | -4 |
| 1 | 1 0 0 | -3 |
| 1 | 1 0 1 | -2 |
| 1 | 1 1 0 | -1 |
| 1 | 1 1 1 | -0 |
Недостатки :
- Для 0 есть два представления: -0 и +0, чего не должно быть, поскольку 0 не является ни -ve, ни +ve.
- Из 2^n бит для представления мы можем использовать только 2^{n-1} бит.
Достоинства над битовым представлением со знаком:
1. Числа идут в циклическом порядке, т.е. после наибольшего числа (в этом, например, +7) следующее число является наименьшим числом (в этом, например, -7).
2. Для отрицательного подписанного расширения работает.
Пример: подписанное расширение для +5

Подписанное расширение для -5

3. Как видно выше, для представления +ve, а также -ve, если 4 бита расширяются до 5 бит, необходимо просто добавить 0/1 соответственно в MSB.
2-е дополнение к представлению
В представлении дополнения 2 используются следующие правила:
1. Для +ve чисел правила представления такие же, как и для целочисленного представления со знаком.
2. Для -ve чисел есть два разных способа представления числа.
- Напишите беззнаковое представление 2^nX вместо –X в n-битном представлении.
Example:
(-5) in 4-bit representation
2^4-5=11 -→1011(unsigned)
- Напишите представление +X и возьмите дополнение до 2.
To take 2’s complement simply take 1’s complement and add 1 to it.
Example:
(-5) in 2’s complement
(+5) = 0101
1’s complement of (+5) = 1010
Add 1 in 1010: 1010+1 = 1011
Therefore (-5) = 1011
3. Диапазон представления n-бит от –(2^{n-1}) до (2)^{(n-1)-1}.
Представление дополнения до 2 (4 бита)

Достоинства:
- Отсутствие двусмысленности в представлении 0.
- Числа идут в циклическом порядке, т.е. после +7 идет -8.
- Подписанное расширение работает.
- Диапазон чисел, которые можно представить с помощью дополнения до 2, очень велик.
Из-за всех вышеперечисленных достоинств представления в дополнении до 2 целого числа со знаком, двоичные числа представляются с использованием метода дополнения до 2 вместо знакового бита и дополнения до 1.