УП Информатика
.pdfП р и м е р .
1010 = 10102;
1.2. Перевод чисел из одной системы счисления в другую
Если число X из системы счисления с основанием S необходимо перевести в систему счисления с основанием P, то перевод осуществляется по следующим правилам.
Правило 1
Для P = Sk, где k – целое положительное число (например, P = 8
=23, k = 3, S = 2):
1)при переводе числа из двоичной системы счисления в восьмеричную, начиная с запятой в левую сторону для целой части и в правую – для дробной части, число разбивается по триадам и каждая триада заменяется восьмеричной цифрой;
2)при переводе числа из восьмеричной системы счисления в двоичную каждая цифра записывается как двоичная по триадам;
3)при переводе числа из двоичной системы счисления в шестнадцатеричную, число разбивается по тетрадам и каждая тетрада заменяется шестнадцатеричной цифрой (P = 16 = 24, k = 4, S = 2);
4)при переводе числа из шестнадцатеричной системы счисления в двоичную каждая цифра записывается как двоичная по тетрадам.
П р и м е р .
а) 011 |
011 |
011 , 101 |
110 2 |
= 333,56 8 ; |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
3 |
3 |
5 |
6 |
|
11 |
б)
167,56 8 = |
001 |
110 111, 101 |
110 2 |
; |
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
6 |
7 |
|
5 |
|
|
6 |
|
|
|
|
|
||||||||||||
в) 0011 1011 0100, |
1111 1010 2 |
|
= 3B4,FA 16 ; |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
|
B |
4 |
|
|
|
|
|
F |
|
|
A |
|
|
|
|
|
|
|
|||||||||
г) A29,CF |
16 = |
|
1010 |
|
0010 |
|
1001, |
|
1100 1111 2 . |
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A |
|
|
|
|
2 |
|
|
9 |
|
|
|
C |
F |
Правило 2
При невыполнении равенства P = S k (где k – целое положительное число):
1. Целая часть числа делится на новое основание P; полученный от деления первый остаток является младшей цифрой целой части числа с основанием P; затем полученное число снова делится на основание P, в результате определяется второй остаток, соответствующий следующей после младшей цифре числа с основанием P; деление продолжается до тех пор, пока частное не станет меньше делителя; последнее частное дает старшую цифру числа с основанием P.
П р и м е р .
1. Перевести число 2610 в двоичную систему счисления:
12
Таким образом, 2610 = 110102.
2. Перевести число 19110 в восьмеричную систему счисления:
Таким образом, 19110 = 2778;
2. Дробная часть числа умножается на новое основание P, при этом целая часть полученного произведения является старшей цифрой дробной части числа с основанием P; затем дробная часть произведения снова умножается на основание P; полученная часть произведения будет второй искомой цифрой; снова дробная часть умножается на основание P и т. д.
П р и м е р . Число 0,3110 перевести в двоичную систему счисления:
Таким образом, 0,3110 = 0,01002.
Число цифр в числе, представленном в системе счисления с основанием P, определяется из условия, что точность числа в этой системе счисления должна соответствовать точности числа в системе счисления с основанием S.
3. В смешанных числах целая и дробная части переводятся отдельно: целая часть – по правилу 2 (1), дробная часть – по правилу
2 (2).
При переводе чисел в десятичную систему счисления пользуются разложением числа по степеням оснований системы счисления.
13
П р и м е р .
а) 3358 = 3 ×82 + 3 ×81 + 5 ×80 = 22110 ; б) 0.78 = 7 ×8−1 = 0.87 10;
в) A316 = A ×161 + 3 ×160 =10 ×16 + 3 =16310 ;
г) 0, 11012 =1× 2−1 +1× 2−2 + 0 × 2−3 +1× 2−4 = 0, 812510 .
1.3.Формы представления чисел в ЭВМ
Всовременных ЭВМ применяются два способа представления чисел: с фиксированной точкой и плавающей точкой.
Представление чисел в форме с фиксированной точкой. В
этом случае место точки, отделяющей целую часть числа от дробной, определяется на этапе конструирования ЭВМ. Сразу же указывается количество разрядов, отводимых для изображения целой и дробной частей. Причем каждому разряду ячейки соответствует всегда один и тот же разряд числа, что существенно упрощает выполнение арифметических действий.
П р и м е р . В ЭВМ, работающей в десятичной системе счисления, в каждой ячейке памяти которой 10 разрядов и распределены они так: первый разряд отведен для изображения знака числа (знаку «+» соответствует нуль, а знаку «–» соответствует единица), четыре разряда – под целую часть, а остальные пять разрядов – под дробную часть числа. Тем самым положение точки, отделяющей целую часть от дробной, строго фиксировано. Тогда самое большое число, которое можно записать в ячейку, +9999,99999, самое малое число –9999,99999. Не любое число из этого диапазона может быть точно представлено в ячейке памяти, ведь на дробную часть отведено только пять разрядов. Наименьшее по модулю допустимое число, отличное от нуля, 0000,00001.
Любое неотрицательное число, меньшее чем это, представляется в машине нулем. Если при выполнении каких-либо вычислений получится результат, абсолютная величина которого больше, чем
14
9999,99999, то старшие разряды полученного числа будут потеряны.
П р и м е р . Если к числу 9999,99998 прибавить число 0000,00005, то должно получиться 10000,00003. На самом деле в ЭВМ результат будет представлен в виде 0000,00003, т. е. совершенно отличный от правильного.
Основное преимущество метода представления чисел с фиксированной точкой – простота арифметических операций, недостаток
– слишком узкий диапазон представления чисел.
Все вышесказанное распространяется на ЭВМ, работающие в двоичной системе счисления. Только для получения примерно той же точности представления чисел здесь потребуется примерно втрое большее количество разрядов. Повышение точности в случае изображения чисел с фиксированной точкой возможно лишь за счет увеличения количества разрядов. А это сделать не всегда технически просто.
В различных ЭВМ может быть различная длина ячейки и различные формы представления чисел [2].
П р и м е р . Ячейка памяти машины имеет 24 двоичных разряда. В ячейку можно поместить любое машинное слово, т. е. произвольный набор из нулей и единиц. Если это слово – число, то в конструкции машины может быть предусмотрено его представление в форме с фиксированной точкой. В частности, оно может быть таким: крайний слева разряд – знаковый, затем следующие 9 разрядов отводятся под целую часть и, наконец, оставшиеся 14 разрядов – под дробную часть числа, т. е. точка здесь всегда на одном и том же месте – после десятого разряда машинного слова (с учетом знакового разряда). Тогда самое большое число, представимое в машине, будет
(111111111,11111111111111)2.
Это число меньше, чем 29 = (512)10. А наименьшее по модулю, допустимое, отличное от нуля число равно
(000000000,00000000000001)2 = 2 –14 .
15
То есть диапазон чисел, которые можно записать в ячейку памяти машины, здесь такой:
2–14 ≤ |a | < 29.
Представление чисел в форме с плавающей точкой. Для того чтобы увеличить диапазон представимых чисел, используют другую форму записи чисел – с плавающей точкой. Любое число в системе счисления с основанием S можно записать как
a = m · S p, |
(7) |
где m – мантисса числа; p – порядок.
П р и м е р . В десятичной системе счисления число 3,14 можно предста-
вить в виде 3,14 = 0,314–1 .
Здесь мантисса равна 0,314, а порядок p = –1.
Очевидно, такое представление далеко не однозначно. Число 3,14 можно записать следующим образом:
3,14 = 3,14 · 100 = 31,4 · 10–1 = 0,0314 · 10–2 =...
Порядок числа определяет положение точки в записи мантиссы. При корректировке порядка соответствующим образом меняется и положение запятой – запятая как бы «плавает». Отсюда и название метода представления чисел.
Число с плавающей точкой может быть нормализованным. Нор- мализованная форма – форма представления чисел, для которой справедливо условие S –1 <= |m| < 1.
Вслучае когда S = 10, мантисса должна удовлетворять требованию: 1 / 10 ≤ |m| < 1 (в десятичной системе счисления). То есть первая цифра мантиссы после точки должна быть отличной от нуля.
Внашем примере десятичное число а = 3,14 в нормализованной форме имеет вид 3,14 = 0,314 · 10–1 . Здесь m = 0,314, p = – 1.
16
Аналогично для а = – 0,00062 имеем – 0,00062 = – 0,62 · 10 –3 . Здесь m = – 0,62, p = –3.
В двоичной системе счисления число а называется нормализованным, если оно определяется в виде
а = m · 2 p ,
где p – двоичный порядок; m – двоичная мантисса числа а, причем
0,5 ≤ |m| < 1.
П р и м е р . Пусть задано число a = (6)10. В двоичной системе счисления оно имеет вид (110)2, а в двоичной нормализованной форме а = 0,11 · 23. Используя только двоичные цифры, получим а = 0,11·1011 (так как (2)10 =
= (10)2, (3)10 = (11)2, т. е. m = (0,11)2, p = (11)2).
Для а = 3/32 нормализованное двоичное представление имеет вид a = (3/32)10 = 0,11·10–11 , т. е. m = (0,11)2, p = – (11) 2.
Рассмотренный выше способ записи справедлив для чисел, отличных от нуля. Если же а = 0, то в записи а = m · Sp значения m = = 0 и p = 0.
При представлении чисел с плавающей точкой в ячейке памяти ЭВМ выделяют группы разрядов для изображения мантиссы, порядка, знака числа и знака порядка. Если в ячейке 24 разряда, то, перенумеровав их с нулевого номера по двадцать третий, можно распределить их, например, следующим образом: нулевой разряд отвести под знак числа, первый – под знак порядка, следующие семь разрядов (со 2-го по 8-й) – порядок числа, с 9-го по 23-й разряды – под мантиссу числа. Причем знак «+» обозначается нулем, а «–» обозначается единицей как для знака числа, так и для знака порядка (рис. 1).
0 1 2 3 4 5 6 7 8 9 10 23
|
|
… |
Знак числа |
|
|
Знак порядка |
Порядок |
Мантисса |
Рис. 1. Представление числа в форме с плавающей точкой
17
П р и м е р . Пусть a = (4)10 = (100)2 = 0,l · 1011. Здесь m = (0,1)2, р = (11)2.
Распределение в ячейке представлено на рис. 2.
0 |
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
|
23 |
|
|||
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
… |
0 |
|
|||||
Знак числа |
|
|
|
|
|
|
Порядок |
|
|
|
|
Мантисса |
|
|
||||||
|
Знак порядка |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
Рис. 2. Представление числа 410 |
в форме с плавающей точкой |
Изображение числа а = – (9,5) 10 = – (1001,1) 2 = – (0,10011·10 100)2 в 24-раз-
рядной ячейке представлено на рис. 3.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 23
|
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
|
… |
0 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Знак числа |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Знак порядка |
|
|
Порядок |
|
|
|
|
|
|
Мантисса |
|
|
Рис. 3. Представление числа – (9,5) 10 в форме с плавающей точкой
Изображение числа нуль в форме с плавающей точкой представлено на рис. 4.
0 1 2 3 4 5 6 7 8 9 10 11 23
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
… |
0 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Знак числа |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Знак порядка |
|
|
|
Порядок |
|
|
|
|
Мантисса |
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 4. Представление числа нуль в форме с плавающей точкой
При записи числа в нормализованном виде мантисса не должна начинаться с нуля. Это значит, что такая форма записи дает максимально возможную точность при данном фиксированном количестве разрядов, отведенных под мантиссу числа. При этом обеспечивается достаточно широкий диапазон чисел, представимых в машине.
Минимальное число, которое можно записать в ячейку, пред-
18
ставлено на рис. 5, т. е. порядок p = (1111111)2 = (127)10, а мантисса
m = (0,111...) 2 близка к единице.
123
15
0 1 2 3 4 5 6 7 8 9 10 23
|
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
… |
1 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Знак числа |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Знак порядка |
|
|
|
|
|
Порядок |
Мантисса |
|
Рис. 5. Минимальное число в форме с плавающей точкой
Такое же по абсолютной величине, но положительное число, максимальное из возможно представимых в памяти ЭВМ, представлено на рис. 6.
0 1 2 3 4 5 6 7 8 9 10 11 23
|
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
… |
1 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Знак числа |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Знак порядка |
|
|
|
Порядок |
|
|
|
|
Мантисса |
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 6. Максимальное число в форме с плавающей точкой
Минимальное по модулю, отличное от нуля и нормализованное
число а = ( 0, 1 · 10–1111111 ) |
= |
1 |
|
2 –127 |
= 2 –128 |
представлено на рис. 7. |
||||||||||||||||
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
2 |
|
2 |
|
|
|
|
|
|
|
|
|
||
0 |
1 |
2 |
3 |
4 |
|
5 |
6 |
7 |
8 |
9 |
10 |
11 |
|
23 |
|
|||||||
|
0 |
1 |
1 |
1 |
1 |
|
1 |
1 |
|
1 |
1 |
1 |
0 |
0 |
… |
0 |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Знак числа |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Знак порядка |
|
|
|
|
Порядок |
|
|
|
|
|
Мантисса |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 7. Минимальное по модулю нормализованное число в форме с плавающей точкой
Наименьшее по модулю число, не равное нулю и не нормализованное, представимое в ячейке, есть
19
|
1 |
+15 |
× 2 |
–127 |
|
–142 |
|
|
а = |
|
|
|
= 2 |
|
. |
||
2 |
|
|
|
|||||
|
|
|
|
|
|
|
|
|
В этом случае мантисса m = (0, 000...01) |
2 |
= 2 –15 , порядок p = |
||||||
|
|
|
|
14243 |
|
|||
|
|
|
|
|
15 |
|
|
|
= – (1111111) 2 = – (127)10.
На точность представления чисел влияет не только порядок, но
иколичество разрядов, отводимых под мантиссу числа.
Пр и м е р . Число (1/3)10 изображается бесконечной двоичной дробью (0,01010101...)2, или в нормализованной форме
(1/3)10 = 0,10101, ... 2 –1 = (0,10101 ... 10 –1 )2
(m = 0,10101…; p = – 1).
Так как под изображение цифр мантиссы в ячейке памяти ЭВМ отводится ограниченное число разрядов (в нашем случае 15), то учитываются только старшие разряды, а младшие отбрасываются. И число (l/3)10 запишется в ячейке следующим образом:
01 0000001 101010101010101.
14243 144424443
Порядок Мантисса
Чтобы повысить точность представления чисел, можно увеличить количество разрядов ячейки, отводимых под изображение мантиссы.
В пределах одной ячейки это можно сделать лишь за счет сокращения числа разрядов, отводимых для изображения порядка. Тем самым сужается диапазон чисел, с которыми может работать ЭВМ [2].
Довольно часто для повышения точности представления чисел используют запись чисел с так называемой двойной точностью. В этом случае число записывается не в одной, а в двух подряд иду-
20