© Кафедра вычислительных систем ГОУ ВПО «СибГУТИ»
© Кафедра вычислительных систем ГОУ ВПО «СибГУТИ»
© Кафедра вычислительных систем ГОУ ВПО «СибГУТИ»
17510 = 1010 11112
3610 = 10 01002
© Кафедра вычислительных систем ГОУ ВПО «СибГУТИ»
© Кафедра вычислительных систем ГОУ ВПО «СибГУТИ»
© Кафедра вычислительных систем ГОУ ВПО «СибГУТИ»
-10010 = 1110 01002, 10010 = 0110 01002
-3610 = 1010 01002, 3610 = 10 01002
знак
-100
-36
© Кафедра вычислительных систем ГОУ ВПО «СибГУТИ»
© Кафедра вычислительных систем ГОУ ВПО «СибГУТИ»
10010 = 0110 01002, – 10010 = 1001 10112
3610 = 10 01002, – 3610 = 1101 10112
знак
– 100
– 36
© Кафедра вычислительных систем ГОУ ВПО «СибГУТИ»
– 10010 = 1111 11112 – 0110 01002 =
1001 10112
© Кафедра вычислительных систем ГОУ ВПО «СибГУТИ»
© Кафедра вычислительных систем ГОУ ВПО «СибГУТИ»
Обратный код
– х = 0 – х = 999 999 – х
– 1 = 0 – 1 = 999 999 – 1 =999 998
<Доп. код> = <Обр. код> + 1
знак
– 100
– 36
© Кафедра вычислительных систем ГОУ ВПО «СибГУТИ»
© Кафедра вычислительных систем ГОУ ВПО «СибГУТИ»
© Кафедра вычислительных систем ГОУ ВПО «СибГУТИ»
© Кафедра вычислительных систем ГОУ ВПО «СибГУТИ»
© Кафедра вычислительных систем ГОУ ВПО «СибГУТИ»
© Кафедра вычислительных систем ГОУ ВПО «СибГУТИ»
© Кафедра вычислительных систем ГОУ ВПО «СибГУТИ»
© Кафедра вычислительных систем ГОУ ВПО «СибГУТИ»
© Кафедра вычислительных систем ГОУ ВПО «СибГУТИ»
© Кафедра вычислительных систем ГОУ ВПО «СибГУТИ»
© Кафедра вычислительных систем ГОУ ВПО «СибГУТИ»
0
Размер, выделяемый для хранения:
4 байта (32 бита)
(e, f ,s) = s1.f ⋅ be-q
f: 23 бит; e: 8 бит; s: 1 бит,
b = 2, q = 28-1 – 1 = 127
22
1
23
24
30
31
f
e
s
( 127, 0 ,0) = +1.0 ⋅ 2127-127 = + 1.0
( e, f ,s) = s1.f ⋅ be-q
( 127, 0 ,1) = –1.0 ⋅ 2127-127 = – 1.0
( e, f ,s) = s1.f ⋅ be-q
( 126, 0 ,0) = +1.0 ⋅ 2126-127 = +0.5
( e, f ,s) = s1.f ⋅ be-q
( 127, 0 ,0) = +1.0 ⋅ 2123-127 = +2-4 = 0.0625
Пусть дано десятичное вещественное число A10 = A'10 . A''10
Необходимо: найти A2
Решение:
Найти A'2 из A'10, используя алгоритм DB1 перевода целых десятичных чисел в двоичные.
Найти A''2 из A''10, используя алгоритм DB2 перевода дробных (<1) десятичных чисел в двоичные.
A2 = A'2.A''2
НАЧАЛО
m > 0
n2= n2 + (m mod 2) << i
m = m div 2
i = i + 1
КОНЕЦ
НЕТ
ввод n10
i = 0, n2 = 0, m = n10
пока m > 0 делать
n2 = n2 + (m mod 2) << i
m = m div 2
i = i + 1
конец пока
вывод n2
n2
НАЧАЛО
m > 0
n2= n2 << 1 + [m·2]
m = m·2 − [m·2]
i = i + 1
КОНЕЦ
НЕТ
ввод n10
i = 0, n2 = 0, m = n10
пока m > 0 делать
n2= n2 << 1 + [m·2]
m = m·2 − [m·2]
i = i + 1
конец пока
вывод n2·2-i
n2·2-i
НАЧАЛО
m > 0
n2= n2 << 1 + [m·2]
m = m·2 − [m·2]
i = i + 1
КОНЕЦ
НЕТ
1. n2 = 02<<1 + [0.3·2] = 02
m = 0.6, i = 1
2. n2 = 0<<1 + [0.6·2] = 12
m = 1.2 – 1 = 0.2, i = 2
3. n2 = 12<<1 + [0.2·2] = 102
m = 0.4 – 0 = 0.4, i = 3
4. n2 = 102<<1 + [0.4·2] = 1002
m = 0.8 – 0 = 0.8, i = 4
5. n2 = 100<<1 + [0.8·2] = 10012
m = 1.6 – 1 = 0.6, i = 5
n2·2-5 = 0.01001
6. …
…
0.310 = 0.01001 1001 1001 1001 ….
n2·2-i
( e, f ,s) = s1.f ⋅ be-q
( 127, 0 ,0) = +1.0011001… ⋅ 2125-127 =
1.0011001… ⋅ 2-2 = 0.010011001….
( e, f ,s) = s1.f ⋅ be-q
( 127, 0 ,0) = +1.01010011001… ⋅ 2129-127 =
1.01010011001… ⋅ 22 = 101.010011001….
1.0101 0011 0011 0011 0011 0102 ⋅ 22 =
= 101.01 0011 0011 0011 0011 0102 =
5 + 2-2 + 2-5 + 2-6 + 2-9 + 2-10 +
2-13 + 2-14 + 2-17 + 2-18 + 2-20 =
5 + 0.25 + 0,03125 + 0,015625 +
+ 0,001953125 + 0,000976562 +
+ 0,00012207 + 0,000061035 +
+ 0,000007629 + 0,000003815 + 0,000000954 =
= 5,299999237 + 0,000000954 = 5,300000191
( e, f ,s) = s1.f ⋅ be-q
( 127, 0 ,0) = +1.010 0011 0011 … ⋅ 2129-127 =
1.010 0011 0011 … ⋅ 22 = 101.0 0011 0011 ….
1.010 0011 0011 0011 0011 00112 ⋅ 22 =
= 101.0 0011 0011 0011 0011 00112 =
5 + 2-4 + 2-5 + 2-8 + 2-9 +
2-12 + 2-13 + 2-16 + 2-17 + 2-20 + 2-21 =
5 + 0,0625 + 0,03125 +
0,00390625 + 0,001953125 +
+ 0,000244141 + 0,00012207 +
+ 0,000015259 + 0,000007629 +
0,000000954 + 0,000000477 = 5,099999905
Отбрасывание разрядов:
5.3 = 101.01 0011 0011 0011 0011 0011 00112 =
5,299999237 + 2-21 = 5,299999714
5,299999714 − 5,3 = − 2.86 · 10-7
Округление с использованием школьной арифметики
5.3 = 101.01 0011 0011 0011 0011 00112 =
101.01 0011 0011 0011 0011 001 + 2-21 =
101.01 0011 0011 0011 0011 010 =
5,299999237 + 2-20 = 5,300000191
5,300000191 – 5,3 = 1.91 · 10-7
Отбрасывание разрядов:
5.1 = 101.0 0011 0011 0011 0011 0011 00112 =
5,099999905
5,099999905 − 5,1 = − 0.95 · 10-7
Округление с использованием школьной арифметики
5.1 = 101.0 0011 0011 0011 0011 0011 00112 =
5,099999905
5,099999905 − 5,1 = − 0.95 · 10-7
( 0, 0 ,0) = +1.000 0000 0000 … ⋅ 20-127 =
1.000 0000 0000 … ⋅ 2-127 = 2-127
x
…
0.1
0.2
0.3
1.0
1.1
1.2
…
0.123
1.123
Δх1 = | xп – xт | = | 0.123 – 0.1 | = 0.023, порядок 10-2.
Δх2 = | xп – xт | = | 1.123 – 1.1 | = 0.023, порядок 10-2.
δx1 = Δх/xп = 0.023/0.123 ≈ 0.186, порядок 10-1
δx2 = Δх/xп = 0.023/1.123 ≈ 0,020 , порядок 10-2
x
…
0.1·10-9
0.2·10-9
0.3·10-9
0.3·109
0.123·10-9
0.123 ·109
Δх1 = | xп – xт | = 0.023·10-9, порядок 10-10.
Δх2 = | xп – xт | = 0.023·109, порядок 108.
δx1 = Δх/xп = 0.023·10-9 / 0.123·10-9 ≈ 0.186, порядок 10-1
δx2 = Δх/xп = 0.023·109 / 0.123·109 ≈ 0.186, порядок 10-1
Результаты работы:
Число делений на 2: 24
Машинный эпсилон: 5.960464e-08
почему?
Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть