Крайний левый разряд содержит знак числа: 0 соответствует положительному числу, 1 – отрицательному, остальные разряды содержат значащую часть числа (самый старший разряд слева).
В компьютерной технике применяются три формы кодирования целых чисел со знаком: прямой код, обратный и дополнительный. Положительные числа в прямом, обратном и дополнительном кодах изображаются одинаково.
Например, рассмотрим, как число 28 хранится в 16-разрядной ячейке в форме с фиксированной точкой в прямом коде. Двоичное представление десятичного числа 28 имеет вид 2810 = 111002.
Число 28 положительное, поэтому значение первого разряда – 0. Остальные 15 разрядов содержат двоичные цифры, соответствующие числу 28, в нашем случае 0 000000000011100. Поэтому число запишется в ячейку следующим образом:
зн | Число в двоичном представлении | ||||||||||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 |
Такой способ кодирования называется прямым кодом.
Если возьмем отрицательное число, например, -125, то оно в
16-битном формате со знаком запишется так. Первый разряд – 1, так как число отрицательное.
Двоичное представление числа
12510 = 11111012. В 16-разрядной ячейке это число в прямом коде будет выглядеть так:
1 000000001111101
зн | Число в двоичном представлении | ||||||||||||||
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 |
Для упрощения арифметических действия с отрицательными числами, как правило, используется или обратный, или дополнительный код. Отрицательные числа преобразуются в обратный код инвертированием всех битов двоичного числа, кроме знакового, а дополнительный можно получить прибавлением единицы к обратному коду числа.
11110=11011112
В 8 байтовой ячейке: 0 1101111
Число -111 будет представлено:
Прямой 1 1101111
Обратный 1 0010000
+1
Доп-ый 1 0010001
При 2-байтовой кодировке, когда под значащую часть числа отводится 15 разрядов, максимально возможное целое число, которое может поместиться в отведенную ячейку, составляет 215 - 1 = 32767. Число с большим значением не поместится в такую ячейку. В таком случае говорят о переполнении. Переполнение разрядной сетки - это ситуация, когда число, которое требуется сохранить, не умещается в отведенном количестве разрядов памяти вычислительного устройства. Последствия такой ситуации могут быть разными в зависимости от программы, в которой она случилась: от прерывания программы с выводом сообщения об ошибке до получения неверного результата. Переполнение связано с количеством разрядов устройства, выделяемых для хранения числа.
Арифметические действия с целыми числами выполняются точно. Для деления существуют операции определения целой части частного и остатка от деления.
| Поделиться: |
Познавательные статьи:
Последнее изменение этой страницы: 2020-11-23; просмотров: 2842; Нарушение авторского права страницы; Мы поможем в написании вашей работы!
infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.119.28.173 (0.007 с.)