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

Представление данных

Основные типы данных с точки зрения размерности

 

С точки зрения размерности микропроцессор аппаратно поддерживает следующие основные типы данных:

- байт;

- слово;

- двойное слово;

- учетверенное слово.

 

Байт — восемь последовательно расположенных битов.

Биты нумеруются от 0 до 7, при этом бит 0 является самым младшим значащим битом.

Обратим внимание, байт – наименьшая адресуемая ячейка памяти.

 

Байт

               

7 6 5 4 3 2 1 0

Рис. 1. Основные типы данных: байт

 

 

Слово — два последовательно расположенных байта, 16 бит.

Биты нумеруются от 0 до 15.

Байт, содержащий нулевой бит, называется младшим байтом, а второй байт ¾ старшим байтом.

Напомним, что в микропроцессорах Intel младший байт всегда хранится по меньшему адресу. Поэтому адресом слова считается адрес его младшего байта.

 

Слово

Старший байт Младший байт

15 7 0

Рис. 2. Основные типы данных: слово

 

Двойное слово — два последовательно расположенных слова (четыре байта), 32 бита.

Биты нумеруются от 0 до 31. Слово, содержащее нулевой бит, называется младшим словом, второе слово называется старшим словом. Младшее слово хранится по меньшему адресу. Адресом двойного слова считается адрес его младшего слова.

 

Двойное слово

Старшее слово   Младшее слово

31 15 0

Рис. 3. Основные типы данных: двойное слово

 

Учетверенное слово — четыре последовательно расположенных слова (восемь байт), 64 бита.

Биты нумеруются от 0 до 63. Двойное слово, содержащее нулевой бит, называется младшим двойным словом, а второе двойное слово — старшим двойным словом. Младшее двойное слово хранится по меньшему адресу. Адресом учетверенного слова считается адрес его младшего двойного слова.

 

Учетверенное слово

Старшее двойное слово   Младшее двойное слово

63 31 0

Рис. 4. Основные типы данных: учетверенное слово

 

 

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

Из этих простых типов данных строятся так называемые структурированные типы: массивы, множества, строки символов, записи (структуры) и другие.

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

Для представления числа в памяти отводится необходимое количество байт.

Известно, что в ячейке из k разрядов можно записать 2k различных комбинаций из 0 и 1.

Для хранения (записи) беззнакового числа используются все биты отведенных для его представления ячеек.

Следовательно, с помощью 8 разрядов одного байта можно представить 28 = 256 целых беззнаковых чисел, то есть числа в диапазоне от 0 до 255.

С помощью 16 разрядов слова можно представить 216 = 65536 целых беззнаковых чисел, то есть числа в диапазоне от 0 до 65535.

Четырьмя байтами двойного слова (32 бита) можно представить числа в диапазоне от 0 до 232 . А учетверенное слово позволяет представить 264 различных целых беззнаковых чисел.

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

Поэтому, с помощью одного байта могут быть представлены только 27 = 128 отрицательных чисел и 128 положительных чисел. То есть с помощью 8 разрядов одного байта могут быть записаны числа в диапазоне от –128 до +127 (включая 0).

Два байта слова при одном отведенном бите на знак числа, соответственно, позволяют представить 215 = 32768 отрицательных чисел и 32768 положительных чисел, то есть числа в диапазоне от –32 768 до +32 767 (включая 0).

Для представления в памяти компьютера отрицательных чисел используются специальные коды:

- обратный код;

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

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

При записи отрицательного числа в обратном коде в знаковый разряд записывается 1, все остальные разряды числа инвертируются (то есть вместо единиц записываются нули, вместо нулей – единицы). Например, отрицательное двоичное число 1110010 в обратном коде будет иметь вид 10001101.

При записи отрицательного числа в дополнительном коде в знаковый разряд также помещается 1, все разряды инвертируются, а затем к младшему разряду прибавляется 1. Например, двоичное число из предыдущего примера 1110010 в дополнительном коде будет иметь вид 10001110, так как

+

---------------

 

Таким образом, использование дополнительного или обратного кода позволяет операцию вычитания свести к операции сложения: X – Y = X + (-Y).