Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-20_EVM.docx
Скачиваний:
36
Добавлен:
02.04.2015
Размер:
684.01 Кб
Скачать

Диапазоны значений целых чисел без знака

Формат числа в байтах 

Диапазон 

Запись с порядком

Обычная запись

1

0 ... 28–1

0 ... 255

2

0 ... 216–1

0 ... 65535

Примеры:

а) число 7210 = 10010002 в однобайтовом формате:

б) это же число в двубайтовом формате:

  1. Форматы данных. Целые числа со знаком. Дополнительный код.

Обычно занимают в памяти компьютера один, два или четыре байта, при этом самый левый (старший) разряд содержит информацию о знаке числа.   Диапазоны значений целых чисел со знаком

Формат числа в байтах

Диапазон

Запись с порядком

Обычная запись

1

–27 ... 27–1 

–128 ... 127 

2

–215 ... 215–1 

–32768 ... 32767

4

–231 ... 231–1 

–2147483648 ... 2147483647

Рассмотрим особенности записи целых чисел со знаком на примере однобайтового формата, при котором для знака отводится один разряд, а для цифр абсолютной величины – семь разрядов.

Положительные числа в прямом, обратном и дополнительном кодах изображаются одинаково  —  двоичными кодами с цифрой 0 в знаковом разряде. Например:   

Отрицательные числа в прямом, обратном и дополнительном кодах имеют разное изображение.

1. Прямой код. В знаковый разряд помещается цифра 1, а в разряды цифровой части числа — двоичный код его абсолютной величины. Например:  

2. Обратный код. Получается инвертированием всех цифр двоичного кода абсолютной величины числа, включая разряд знака: нули заменяются единицами, а единицы — нулями. Например: 

3. Дополнительный код. Получается образованием обратного кода с последующим прибавлением единицы к его младшему разряду. Например:   

Обычно отрицательные десятичные числа при вводе в машину автоматически преобразуются в обратный или дополнительный двоичный код и в таком виде хранятся, перемещаются и участвуют в операциях. При выводе таких чисел из машины происходит обратное преобразование в отрицательные десятичные числа.

  1. Определение переполнения при сложении целых чисел.

В некоторых случаях операции над числами в дополнительном коде дают ошибочный результат. Эти случаи называются "переполнением". Название случая отражает то, что требуемый результат не может быть размещён в  используемой разрядной сетке, или не входит в множество чисел со знаком данной разрядности.

При сложении чисел в дополнительном коде почти в половине случаев возникает перенос за разрядную сетку, причём результат сложения оказывается правильным . Переносом за разрядную сетку называют случай, при котором результат сложения не помещается в разрядную сетку слова (в примере -- двухразрядную). Эти случаи при операциях с числами в дополнительном коде, вообще говоря, не приводят к ошибочному результату. Более того, на игнорировании переноса за разрядную сетку основаны замечательные свойства дополнительного кода.

При подробном рассмотрении таблицы сложения двухразрядных чисел можно отметить, что ошибочный результат происходит в случаях, когда имеет место перенос за разрядную сетку, а переноса в старший (знаковый) разряд в процессе операции не происходит. И наоборот, при сложении происходит перенос в старший (знаковый) разряд, а переноса за разрядную сетку не происходит.

Перенос из знакового разряда

Знаковый разряд

Разряды числа

Z1

A0

A1

A2

A3

A4

A5

A6

Z2

B0

B1

B2

B3

B4

B5

B6

С

С’

C0

C1

C2

C3

C4

C5

C6

Переполнение определяется: V = C (+) C’