- •4.4 Трансляторы
- •4.5 Библиотеки программ
- •4.6 Языки высокого уровня — языки поцедур
- •5. Системы счисления и действия в них
- •5.1 Происхождение систем счисления и представление целых и дробных чисел в ()2, ()8 и ()16
- •5.2 Информативность системы счисления — замечательное свойство троичной системы счисления.
- •5.3 Формирование машинного целого и вещественного, стандарт ieee
5.3 Формирование машинного целого и вещественного, стандарт ieee
В ЭВМ числа переводятся в двоичную систему счисления.
биты: 7 6 5 4 3 2 1 0 — 1 байт
unsigned — все биты заняты числом (от 0 до 255).
signed — 1-ый бит отводится под знак (от -127 до 127).
Для более эффективного действия с числами, отрицательные числа хранятся в дополнительном коде.
Дополнительный код образуется путем инверсии числа и добавления единицы.
(-11)10=-(23+21+1)10=-(1011)2=-(00001011)2=(10001011)2 — прямой код.
(10001011)2=(11110100)2 — обратный код
(11110100)2+(1)2=(11110101)2— обратный код
Таким образом -0=0.
Старая форма прорма представления чисел:
Биты:
31 — знак
30 — знак порядка
29-23 — порядок
220 — мантисса
1/p<=m<1 => m>0 (p — основание системы счисления, m — мантисса)
0,083*103=0,83*102 (2 — порядок, 10 — основание системы счисления, 0,83 — мантисса)
Многие новые системы делаются так, что знака порядка нет, а к порядку просто добавляется число, чтобы сделать его положительным.
float — 4 байта
по ieee:
биты:
31 — знак
30-23 — приведенный порядок (порядок +127)
22-0 — приведенная мантисса (М) без единицы (implicite one — неявная единица). М такая, что в целой части число, отличное от нуля, но меньше основания системы счисления. Для двоичной системы — это только 1. А в биты записывается М-1.
(101,011)2 :
m=(0,101011)2
M=(1,01011)2
M-1=(0,01011)2
double — 8 байт
по ieee:
биты:
63 — знак
62-52 — приведенный порядок (порядок +1023)
51-0 — М-1
long double — 10 байт
по ieee:
биты:
79 — знак
78-64 — приведенный порядок (порядок +16383)
63-0 — М-1
Пример:
15,375 → float (ieee)
15=8+4+2+1=(1111)2
(0,375)10=(0,25)10+(0,125)10=(0,01)2+(0,001)2=(0,011)2
15,375=(1111,011)2
нормализованный вид:
23*(1,111011)2
приведенный порядок:
3+127=2+128=(10000010)2=(82)16
М-1=(0,111011)2
итог:
0_10000010_11101100000000000000000
(41760000)16
Сопроцессор
-выполняет арифметические действия над числами
R0-R7 — регистры сопроцессора
на них записываются числа для выполнения арифметических действий.