Типы данных. Системы счисления. Перевод чисел из одной системы счисления в другую. Типы данных и форматы их представления, страница 2

Заметим, что если основание исходной системы счисления есть целая степень основания результирующей системы счисления или наоборот, то преобразование из одной системы счисления в другую выполняются значительно проще. Действительно, пусть a и b – основания двух систем счисления, причем a = bn. Тогда (ck…c1c0)b = (ck*bk-p*n + … + cp*n)*bp*n + … + (c2n-1*bn-1+…+cn+1*b+cn)*bn + (cn-1*bn-1+…+c1*b+c0) = Cp*ap + … + C1*a + C0 = (Cp…C1C0)a, где p – целая часть деления k на n. Причем каждые n цифр числа в системе счисления с меньшим основанием представляют собой запись цифры числа, записанного в системе счисления с большим основанием.

Например, если мы разобьем запись двоичного числа на четверки цифр (дописав необходимое количество старших нулей), то каждая такая четверка будет давать цифру в записи того же числа в шестнадцатеричной системе счисления, а каждая тройка – даст восьмеричную цифру: 0111 1101 01102 = 7D616 = 011 111 010 1102 = 37268= 200610.

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

Пример. 0.AB16 = A*(H)-1 + B*(H)-2 = 10*(16)-1 +11*(16)-2 = 0.6679687510

Пример. 0.510 = 1*(2) -1 = 1*(B) -1 = 0.12

2.2. Типы данных и форматы их представления

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

2.2.1. Фундаментальные типы данных

Фундаментальными типами данных в IA-32 являются байты, слова, двойные слова, учетверенные слова и двойные учетверенные слова. О фундаментальных типах данных говорят, когда хотят подчеркнуть физическую природу аппаратно поддерживаемых типов данных с точки зрения объема занимаемого ими памяти.

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

Слово – два последовательно расположенных байта (16 бит). Биты в слове нумеруются от 0 до15. Байт, содержащий нулевой бит, называется младшим байтом, а байт, содержащий 15-й бит, – старшим байтом. В памяти младший байт хранится по младшему адресу. Адресом слова считается адрес его младшего байта.

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

Учетверенное слово – восемь последовательно расположенных байт (64 бита). Биты в двойном слове нумеруются от 0 до 63. Двойное слово, содержащее нулевой бит, называется младшим двойным словом, а двойное слово, содержащее 63-й бит, – старшим двойным словом. В памяти младшее двойное слово хранится по младшему адресу. Адресом учетверенного слова считается адрес его младшего двойного слова. Учетверенное слово аппаратно поддерживается начиная с процессора i80486.

Двойное учетверенное слово – шестнадцать последовательно расположенных байт (128 бит). Биты в двойном слове нумеруются от 0 до 127. Учетверенное слово, содержащее нулевой бит, называется младшим учетверенным словом, а учетверенное слово, содержащее 127-й бит, – старшим учетверенным словом. В памяти младшее учетверенное слово хранится по младшему адресу. Адресом двойного учетверенного слова считается адрес его младшего учетверенного слова. Двойное учетверенное слово аппаратно поддерживается начиная с процессора Pentium III с SSE расширением.

Иногда удобно, а иногда и просто необходимо, чтобы данные в памяти были выровнены, т.е. их адреса начинались с адреса кратного определенной степени двойки.

2.2.2. Числовые типы данных

2.2.2.1. Целые числа

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

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

Таблица 2.1.