2.7.
Компьютерное представление числовой информации.
Все числовые данные хранятся в
машине в двоичном виде, т.е. в виде последовательности нулей и
единиц, однако формы хранения целых и действительных чисел
различны.
Для представления чисел в памяти ПК
используются два формата:
-формат
с
фиксированной точкой
(запятой)
целые числа;
-формат
с плавающей точкой
(запятой)
вещественные числа.
Множество целых чисел,
представленных в памяти ЭВМ, ограничено. Диапазон значений зависит
от размера ячеек памяти, используемых для их хранения.
Для целых чисел существуют два представления:
-беззнаковое;
-со знаком.
В
К-разрядной ячейке может храниться 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. полученный результат дополнить слева незначащими
нулями до К разрядов.
Пример: Получить внутреннее
представление целого числа 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.
Вещественные
числа представляются в ПК в форме с плавающей точкой.
Этот формат использует представление вещественного числа R в виде
произведения мантиссы m на основание системы счисления p в некоторой
целой степени n которую называют порядком:
R=m*pn
Представление числа в форме с плавающей точкой неоднозначно.
Пример: 25.324=25324*101=0.0025324*104=2532.4*10-2
В ЭВМ используют
нормализованное
представление числа в форме с плавывающей точкой. Мантисса в
нормализованном представлении должна удовлетворять условию:
0.1p?m<1p
Иначе говоря, мантисса меньше 1 и
первая значащая цифра - не 0.
В
памяти компьютера мантисса представляется как целое число,
содержащее только значащие цифры (0 целых и запятая не храниться).
Следовательно, внутреннее представление вещественного числа
сводиться к представлению пары целых чисел: мантиссы и
порядка.
Пример: 4-x
байтовая ячейка памяти. В ячейке должна содержаться следующая
информация о числе:
- знак числа;
- порядок;
- значащие цифры мантиссы.
± |
МАН |
ТИ |
ССА |
1-й байт |
2-й байт |
3-й байт |
4-й байт |
В
старшем бите 1-го байта храняться знак числа: 0 обозначает плюс, 1 -
минус.
Оставшиеся 7 бит 1-го байта содержат машинный порядок. В следующих
трех байтах храняться значащие цифры мантиссы (24 разряда).
Пример: Записать внутреннее
представление числа 250,1875 в форме с плавающей
точкой. Решение:
1) Приведем его в двоичную систему счисления с 24 значащими цифрами:
250,187510=1111 1010 , 0011 0000 0000 00002.
2) Запишем в форме нормлизованного двоичного числа с плавающей
точкой: 0,1111 1010 0011 0000 0000 0000*1021000.
Здесь мантисса, основание системы счисления (210=102)
и порядок (810=10002) записаны в двоичной
системе.
3) Вычислим машинный порядок в двоичной системе счисления: Mp2=
1000 + 100 0000 =100 1000.
4) Запишем представление числа в 4-х байтовой ячейке памяти с учетом
знака числа:
0 |
1001000 |
11111010 |
00110000 |
00000000 |
Шестнадцатеричная
форма: 48FA3000.
Пример2: По шестнадцатеричной форме внутреннего
представления числа в форме с плавающей точкой C9811000 восстановить
само число.
Решение:
1) Перейдем к двоичному представлению числа в 4-х байтовой ячейке,
заменив каждую шестнадцатеричную цифру 4-мя двоичными цифрами:
1100 1001 1000
0001 0001 0000 0000 0000
1 |
1001001 |
10000001 |
00010000 |
00000000 |
2) Заметим, что
получен код отрицательного числа, поскольку в старшем разряде с
номером 31 записана 1. Получим порядок числа: р=10010012
-10000002=10012=910.
3) Запишем в форме нормализованного двоичного числа с плавающей
точкой с учетом знака числа:
-0,1000 0001 0001 0000 0000 0000 *21001
4) Число в двоичной системе счисления имеет вид: -100000010,0012.
5) Переведем число в десятичную систему счисления:
-100000010,0012= -(1*28+1*21+1*2-3)=
-258,12510
В
семи двоичных разрядах помещаются двоичные числа в диапозоне от
0000000 до 1111111. Значит, машинный порядок изменяется в диапозоне
от 0 до 127 (в десятичной системе счисления). Всего 128 значений.
Порядок, очевидно, может быть как положительным так и отрицательным.
Разумно эти 128 значений разделить поровну между положительным и
отрицательным значениеями порядка: от -64 до 63.
Машинный
порядок смещен относительно математического и имеет только
положительные значения. Смещение выбирается так, чтобы минимальному
математическому значению порядка соответствовал нуль.
Связь
между машинным порядком (Мр) и математическим (р) в рассматриваемом
случае выражается формулой:
Мр = р + 64
Полученная
формула записана в десятичной системе. В двоичной системе формула
имеет вид: Mp2=p2+10000002
Для записи
внутреннего представления вещественного числа в 4-х байтовой ячейке
необходимо:
1) перевести модуль данного числа в двоичную систему счисления с 24
значащими цифрами;
2) нормализовать двоичное число;
3) найти машинный порядок в двоичной системе счисления;
4) учитывая знак числа, выписать его представление в 4-х байтовом
машинном слове.
|