Лекция

доцента кафедры системного программирования и компьютерной безопасности

Гродненского госуниверситета имени Янки Купалы

канд. техн. наук Ливак Елены Николаевны

 

по дисциплине «Организация и функционирование компьютерных систем»

 

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

Типы данных

 

В лекции:

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

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

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

Вещественные числа

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

Логическая интерпретация основных типов данных

 

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

 

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

-         байт;

-         слово;

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

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

 

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

Биты нумеруются от 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, так как

   10001101

+      

                 1

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

10001110

 

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


Вещественные числа

Микропроцессор не содержит средства для работы с вещественными числами. В системе команд микропроцессора отсутствуют команды для арифметических операций с вещественными числами.
Такие средства (команды) содержатся в математическом (арифметическом) сопроцессоре - специальном устройстве, предназначенном для обработки вещественных чисел. В реальности микропроцессор взаимодействует с сопроцессором, посылая ему запросы на выполнение операций с вещественными числами и принимая ответы.
Однако программирование сопроцессора - достаточно сложная задача, требующая специальных знаний, и в курсе «Основы программирования» нами не рассматривается.
Поэтому ограничимся знаниями и практическими навыками работы с целыми числами.

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

Символьные данные также хранятся в памяти в двоичном виде.
Каждому символу ставится в соответствие двоичный код, который и записывается в качестве значения символа.
В системе кодировки ASCII для каждого символа выделяется один байт. (Системы кодировки обсуждались в разделе «Программирование на языке Pascal».)
Строка представляется как последовательность соседних байтов памяти, в которых записаны коды символов, образующих строку. Адрес первого байта является адресом строки.

Логическая интерпретация основных типов данных

Целый тип без знака — двоичное значение числа без знака (8, 16 или 32 бита).
Числовые диапазоны: Целый тип со знаком — двоичное значение числа со знаком (8, 16 или 32 бита).
Знак содержится в 7, 15 или 31-м бите соответственно.
Отрицательные числа представляются в дополнительном коде.
Числовые диапазоны:
Указатель на память Цепочка — непрерывный набор байтов, слов или двойных слов максимальной длины 4 Гбайт.

Битовое поле - непрерывная последовательность бит, в которой каждый бит является независимым.
Битовое поле может начинаться с любого бита любого байта и содержать до 32 бит.

Неупакованный двоично-десятичный тип - байтовое представление десятичной цифры
от 0 до 9.
Неупакованные десятичные числа хранятся как байтовые значения без знака по одной цифре в каждом байте. Значение цифры определяется младшим полубайтом.

Упакованный двоично-десятичный тип представляет собой упакованное представление двух десятичных цифр от 0 до 9 в одном байте. Каждая цифра хранится в своем полубайте. Цифра в старшем полубайте (биты 4–7) является старшей.