Представление
целых чисел в памяти ЭВМ.
Все числовые данные хранятся в ЭВМ в
двоичном виде, т.е. в виде последовательности нулей и единиц, однако формы
хранения целых и действительных чисел различны.
Для представления чисел в памяти ЭВМ
используются два формата:
1. формат с
фиксированной точкой (запятой) целые числа;
2. формат с плавающей
точкой (запятой) вещественные числа.
Память ЭВМ состоит из ячеек. Каждая
ячейка имеет определенную одинаковую для всех ячеек разрядность.
Схема памяти ЭВМ:
В схеме представлена восьмиразрядная память размером 1 Мбт.
Поэтому множество целых чисел,
которое можно хранить и использовать в памяти ЭВМ, ограничено. Диапазон
допустимых значений целых чисел зависит от размера ячеек памяти, используемых
для их хранения.
Для целых чисел существуют два их представления в памяти
ЭВМ:
-беззнаковое; -со знаком.
В К-разрядной ячейке может храниться 2к
различных значений целых чисел.
Диапазон значений целых беззнаковых
чисел (только положительные): от 0 до 2к – 1.
Для 16-разрядной ячейки: от 0 до 65535.
Для 8-разрядной ячейки: от 0 до 255.
Диапазон значений целых чисел со знаком
(и отрицательные, и положительные в равном количестве): от -2к-1 до
2к-1-1.
Для 16-разрядной ячейки: от -32768 до 32767.
Для 8-разрядной ячейки: от -128 до 127.
Нахождение
прямого кода.
Чтобы получить внутреннее представление целого
положительного числа N (прямой код), хранящегося в К-разрядной ячейке,
необходимо:
1. перевести
число N в двоичную систему счисления;
2. полученный
результат дополнить слева незначащими нулями до К разрядов.
Пример 1. Получить внутреннее
представление целого числа 1607 в 2-х байтовой ячейке.
Решение:
N=1607=110010001112.
Внутреннее представление этого числа будет:
0000 0110 0100 0111.
Шестнадцатеричная форма внутреннего представления числа:
0647.
Нахождение
дополнительного кода.
Для представления целого отрицательного числа
используется дополнительный код.
Дополнительным кодом двоичного
числа X в N-разрядной ячейке является число, дополняющее его до значения 2N.
Получение дополнительного кода:
1.
получить внутреннее представление положительного числа N (прямой
код);
2.
получить обратный код этого числа заменой 0 на 1 или 1 на 0
(обратный код);
3.
к полученному числу прибавить 1.
Положительное число в прямом, обратном и дополнительном
кодах не меняют свое изображение.
Использование дополнительного кода
позволяет заменить операцию вычитания на операцию сложения.
A-B=A+(-B).
Процессору достаточно уметь лишь складывать числа.
Старший, К-й разряд во внутреннем
представлении любого положительного числа равен 0, отрицательного числа равен
1. Поэтому этот разряд называется знаковым разрядом.
Пример. Получить внутреннее
представление целого отрицательного числа -1607.
Решение:
1.
Внутреннее представление положительного числа: 000 0110 0100
0111;
2. Обратный
код: 1111 1001 1011 1000;
3. Дополнительный
код: 1111 1001 1011 1001 - внутреннее двоичное представление числа.
16-ричная форма: F9B9.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.