Системы счисления и форматы представления числовых данных
PAGE 4
Дисциплина «Микроконтроллеры в системах управления», 3-й курс, семестр 6. Модуль 1 Тема 12
Модуль 1 Тема 12
Системы счисления и форматы представления числовых данных
12.1 Позиционные системы счисления
Система счисления символический метод записи чисел, представление чисел с помощью письменных знаков.
Различают два типа систем счисления:
- непозиционные содержат неограниченное количество символов (цифр), значение, выражаемое конкретной цифрой, не зависит от ее положения в числе;
- позиционные содержат ограниченное количество символов (цифр) т.н. алфавит системы счисления; значение, выражаемое конкретной цифрой, определяется ее позицией в числе.
В современной математике и вычислительной технике используют только позиционные системы счисления.
Параметры системы счисления:
основание системы счисления; |
|
набор допустимых символов или цифр |
Значение некоторого числа X, записанного в системе счисления с основанием , определяется по формуле
, (12.1)
где n количество цифр в записи целой части числа;
k количество цифр в записи дробной части числа;
i номер позиции цифры в числе (положительные значения i используют
для целой части, отрицательные для дробной)
Например, значение записи числа в общепринятой десятичной системе будет выражаться следующим образом в соответствии с формулой (12.1):
В этом примере n=4 и k=3.
Характеристики систем счисления, используемых в вычислительной технике и программировании, представлены в табл. 12.1.
Таблица 12.1 Характеристики основных позиционных систем счисления
Название |
Набор |
Пример |
Пример |
|
Двоичная |
2 |
0, 1 |
Индекс B или b: 01101110B |
0b01101110 |
Десятичная |
10 |
0, 1, 2, 3, 4, 5, 6, 7, 8, 9 |
D или без индекса: 139 или 139D |
Без индекса: |
Шестнадцатеричная |
16 |
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F |
Индекс H или h: 123H, 0A8h, 81Bh |
0x123 0x0A8 или 0xA8 0x81B |
Для описания информации, которая обрабатывается цифровой техникой, используется двоичная система счисления, так как цифровые сигналы могут принимать только два фиксированных уровня значений напряжения «низкий» и «высокий», которые условно кодируются 0 и 1.
Вместе с тем, в языках программирования для задания числовых значений используют не только двоичную систему. Двоичное представление удобно для задания констант для настройки отдельных блоков вычислителя, десятичное представление применяют для коэффициентов арифметических операций, а шестнадцатеричное для адресов ячеек памяти или устройств ввода-вывода. В любом случае представление числовых данных в памяти двоичное. Представление чисел в различных системах счисления показано в табл. 12.2
Таблица 12.2 Запись числовых значений в различных системах счисления
Десятичная |
Двоичная |
Шестнадцатеричная |
Двоично-десятичная |
0 1 2 3 4 5 |
0000 0001 0010 0011 0100 0101 |
0 1 2 3 4 5 |
0000 0000 0000 0001 0000 0010 0000 0011 0000 0100 0000 0101 |
6 7 8 9 10 |
0110 0111 1000 1001 1010 |
6 7 8 9 A |
0000 0110 0000 0111 0000 1000 0000 1001 0001 0000 |
11 12 13 14 15 |
1011 1100 1101 1110 1111 |
B C D E F |
0001 0001 0001 0010 0001 0011 0001 0100 0001 0101 |
16 17 18 |
1 0000 1 0001 1 0010 |
10 11 12 |
0001 0110 0001 0111 0001 1000 |
Двоично-десятичное представление (BCD-числа, BCD binary coded decimal) используют для представления данных, выводимых на цифровые индикаторы. Выполнение вычислений над такими числами затруднительно и требует постоянной коррекции результата.
12.2 Понятие кода и формата представления информации
С целью удобства хранения, и обработки разнородной информации для ее представления используют коды и форматы (типы) данных.
Код это принцип взаимосвязи естественного значения числа с его двоичным представлением.
Формат данных (тип данных) определяет особенности внутримашинного представления числа (знак, мантисса, порядок). Отдельные разряды двоичного числа объединяют в функциональные группы, называемые полями. Таким образом, формат это шаблон, накладываемый на некоторый двоичный код. Он служит для интерпретации двоичных чисел, хранящихся в памяти вычислителя. Атрибутами формата (типа данных) являются: общее количество разрядов для представления числа, назначение и размер полей, диапазон допустимых значений.
Общепринятые единицы измерения объема информации в вычислителе: бит один двоичный разряд; байт восемь двоичных разрядов; слово два байта; килобайт 1024 байта (обозначение: байт); мегабайт 1048576 байт (обозначение: байт).
Прямой код это запись значения числа в двоичной системе счисления.
Обратный код получается из прямого инвертированием всех разрядов числа. Дополнительный код двоичный код, используемый для представления целых отрицательных чисел в формате с фиксированной точкой (см. далее).
12.3 Форматы с фиксированной точкой (ФТ)
Форматы с фиксированной точкой, или целочисленные форматы, используют для представления целых чисел в памяти вычислителя.
Категории данных для форматов ФТ:
числа без знака; все разряды формата служат для представления значения;
числа со знаком; один разряд (старший) служит для представления знака числа, остальные для значения (мантиссы), представленной в дополнительном коде, если значение числа отрицательное.
Для получения двоичной записи отрицательного целого числа в дополнительном коде нужно:
1) записать прямой код модуля числа в требуемой разрядности, в бит знака
поставить “1” (что означает “-“);
2) проинвертировать все разряды числа, кроме разряда знака;
3) к полученному числу прибавить “1” (с учетом всех межбитовых переносов).
Полную инверсию записи числа и п.3 можно выполнять в программе для одновременного изменения знака и кода представления целого числа (дополнительный прямой).
Компиляторы языков программирования автоматически выполняют представление заданных отрицательных целых чисел в дополнительном коде для хранения в памяти.
Типовые структуры форматов с ФТ показаны на рис.12.1, а характеристики этих форматов даны в табл. 12.3.
Рисунок 12.1 Типовая структура форматов с фиксированной точкой (ФТ)
В структуре целочисленных форматов различают два поля для хранения мантиссы, т.е. значения числа (разрядность поля обозначим как nm) и поле для хранения знака числа: минус кодируется “1”, плюс “0” (разрядность поля обозначим как ns).
Таблица 12.3 Характеристика целочисленных форматов (ФТ)
Параметры формата |
Диапазон значений (dec/hex) |
Однобайтовое |
|
Двухбайтовое |
|
Однобайтовое |
|
Двухбайтовое |
Например, десятичное значение Х = -5 будет выглядеть в формате “байт со знаком” в виде FBh:
1) прямой код модуля ; в бит знака ставим “1” получим 10000101b; 2) инверсия всех разрядов, кроме знака 11111010b;
3) прибавляем “1” получим 11111011b = FBh
Преимущества использования дополнительного кода для представления отрицательных целых чисел в следующем:
и для положительных и для отрицательных значений соблюдается правило большему значению соответствует больший код;
сложение и вычитание можно выполнять целиком над форматом, т.е. складывать разряды мантиссы и знака без отдельной обработки;
результат сложения или вычитания будет получен автоматически в дополнительном коде для отрицательных значений и в прямом для положительных.
Например, в формате “байт со знаком” X1 = -5 = 11111011b, X2 = 7 = 00000111b.
Результат суммирования:
Y = X1 + X2 = (-5) + 7 = 2 = 00000010b положительное число, прямой код.
Следующий пример: X1 = -8 = 11111000b, X2 = 5 = 00000101b.
Результат суммирования:
Y = X1 + X2 = (-8) + 5 = -3 = 11111101b отрицательное число,
дополнительный код.
12.4 Форматы с плавающей точкой (ПТ)
Особенность форматов с плавающей (float) точкой состоит в том, что часть разрядов числа ( k разрядов ) выделяется под размещение дробной части мантиссы, нормализованной в диапазон от [1..2[, а оставшаяся часть (n-k-1) разрядов под показатель степени двойки масштабного коэффициента числа, именуемый порядком (см. рис. 12.2).
Рисунок 12.2 Типовая структура формата ПТ
Значение числа Х связанно со значениями (содержимым) полей формата следующим соотношением:
. (12.1)
Мантисса числа должна быть получена в т.н. нормализованном виде, т.е. лежать в диапазоне , и в формате задается в прямом коде независимо от знака числа (“2” взята как основание двоичной системы, которая используется для представления данных в вычислителе).
Порядок числа e (точнее, показатель порядка) задается значением, смещенным относительно истинного порядка P. Это удобно для работы с порядками операндов при выполнении арифметических действий. Так, если истинный порядок лежит в диапазоне , то смещенный порядок будет принадлежать диапазону , т.е. будет целым числом без знака. Величина смещения выбирается равной , и связанна с разрядностью полей формата соотношением . Добавка, указанная в скобках, зависит от правил интерпретации крайних значений числа в различных форматах ПТ.
Таким образом, для хранения чисел в формате ПТ используют три поля: знак числа, дробная часть мантиссы, показатель порядка. Естественное значение числа можно получить на основании значений полей согласно формуле (12.1).
Для формата ПТ поля имеют следующую разрядность:
; ; . Поле для знака порядка не выделяется, т.к. во внутримашинном представлении порядок является положительным числом. Так, для форматов real (Pascal) и float (C) разрядность полей составляет:
для real: ; ; ; ; ;
для float: ; ; ; ; .
Достоинства форматов ПТ широкий диапазон и малая погрешность представления чисел, которая слабо зависит от значения числа.
Для записи значения числа, например, Х=28, в формате ПТ с параметрами , , , , нужно:
- получить нормализованную запись числа ;
- дробную часть мантиссы представить в двоичном прямом коде с разрядностью : 0.75=0.110 0000 0000 0000 b (подчеркнуты 15 разрядов поля f );
- слева от точки вместо “0” целой части поставить знак числа; в данном случае для положительного значения это будет “0”;
- рассчитать смещенный порядок ;
- сформировать полную двоичную (или HEX) запись значения числа в формате ПТ (разделительная точка и “1” целой части нормализованной мантиссы в формате не хранятся):
0110 0000 0000 0000 10000011 = 60h 00h 83h
Проверьте самостоятельно, что значение в этом формате будет иметь вид: 1101 0111 0000 1010 01111110 = D7h 0Ah 7Ch .
Автор конспекта доцент каф. 301 Джулгаков В.Г.
Системы счисления и форматы представления числовых данных