Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билеты по проге.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
630.61 Кб
Скачать

Представление целых чисел в эвм

Целые числа хранятся в формате с фиксированной запятой. Каждому разряду ячейки памяти соответствует 1 и тот же разряд числа, а запятая находится вне разрядной сетки, справа. Современные ячейки памяти имеют размер, равный одной из степеней двойки.

Для целых чисел существуют два представления: беззнаковое (только для неотрицательных целых чисел) и со знаком. Отрицательные числа можно представлять только в знаковом виде. Знак числа обычно кодируется старшим битом машинного слова. Традиционно, если старший бит равен 1, то число считается отрицательным, только, если оно не определено как беззнаковое.

Беззнаковое представление: Максимальное значение целого неотрицательного числа достигается в случае, когда во всех ячейках хранятся единицы. Для n-разрядного (n – количество бит) представления оно будет равно (2^n) - 1. Например, максимальное число для 8-битовой ячейки – 255 (все единицы). Если используется 32-разрядное машинное слово, то целое без знака : (2^32)-1 = 4 294 967 295. Диапазон определяется количеством байтов (битов) компьютера, отводимых под одну переменную.

Целые отрицательные числа - самый левый (старший) разряд содержит информацию о знаке числа. Знак “плюс” кодируется нулем, а “минус” — единицей. Представление в компьютере положительных чисел с использованием формата "знак-величина" называется прямым кодом числа. Например, число 2002х10 = 11111010010х2 будет представлено в 16-разрядном представлении следующим образом:

0

0

0

0

0

1

1

1

1

1

0

1

0

0

1

0

Максимальное положительное число (с учетом выделения одного разряда на знак) для целых чисел со знаком в n-разрядном представлении равно:

А = 2n-1 - 1.

В компьютерной технике применяются три формы записи (кодирования) целых чисел со знаком: прямой код, обратный код, дополнительный код. (Код числа - это модель представления числа в цифровом устройстве).

Все три способа используют самый левый (старший) разряд битового набора длины k для кодирования знака числа. Остальные k-1 разрядов (называемые мантиссой) используются для представления абсолютной величины числа.

Прямой код.

Представление числа в привычной форме "знак"-"величина", при которой старший разряд ячейки отводится под знак, а остальные - под запись числа в двоичной системе, называется прямым кодом двоичного числа. Например, прямой код двоичных чисел 1001 и -1001 для 8-разрядной ячейки равен 00001001 и 10001001 соответственно.

Положительные числа (и 0) в прямом, обратном и дополнительном кодах изображаются одинаково — цифровая часть содержит двоичную запись числа, в знаковом разряде содержится 0. Диапазон представимых чисел: 0 … 2^(k -1)– 1

Отрицательные числа

Прямой код отрицательных чисел

В знаковом разряде – единица, в разрядах цифровой части - двоичный код его абсолютной величины. Диапазон представимых чисел: от – (2^(k -1)–1) до 0.

Обратный код

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

Диапазон представимых чисел от – (2^(k -1)–1) до 0.

Дополнительный код

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

Диапазон : От – 2^(k -1) до –1.

Для получения дополнительного кода отрицательного числа можно использовать довольно простой алгоритм:

1. Модуль числа записать в прямом коде в n двоичных разрядах.

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

3. К полученному обратному коду прибавить единицу.

Дополнительный код отрицательного числа а, хранящегося в n ячейках, равен 2^n - |A|

Дополнительный код представляет собой дополнение модуля отрицательного числа А до 0, так как в n-разрядной компьютерной арифметике:

2n - |А| + |А| = 0,

поскольку в компьютерной n-разрядной арифметике 2n = 0. Действительно, двоичная запись такого числа состоит из одной единицы и n нулей, а в n-разрядную ячейку может уместиться только n младших разрядов, то есть n нулей.

При n-разрядном представлении отрицательного числа А в дополнительным коде старший разряд выделяется для хранения знака числа (единицы). В остальных разрядах записывается положительное число

2n-1 - |А|.

Чтобы число было положительным, должно выполняться условие

|А|  2n-1 .

Следовательно, максимальное значение модуля числа А в га-разрядном представлении равно:

|А| = 2n-1 .

Тогда минимальное отрицательное число равно:

А = - 2n-1.

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

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