Главная Учебники - Разные Лекции (разные) - часть 17
Министерство образования Российской Федерации Кафедра компьютерных измерительных систем и метрологии ________________________________________________ И Н Ф О Р М А Т И К А Кодирование информации. Основные форматы данных.
(Часть вторая) Методические указания для проведения лабораторной работы Дисциплина
: Информатика. Время выполнения
: 2 часа Разработали
: Казаков В. Ю. Рейтинг
: 100 1. Цель работы:
изучение понятия – «машинное представление информации», машинное представление действительных чисел, машинное представление текстовой информации (ASCII – коды). 2. Используемые технические средства:
персональный компьютер, ОС Windows 9x/XP. 3. Программа работы.
3.1. Ознакомиться с базовыми положениями «машинного представления действительных чисел», используя Приложение 1.
3.2. Ознакомиться с двоичным кодированием текстовой информации с помощью ASCII -кодов, используя Приложение 2
. 3.4. Выполнить задания своего варианта. 3.5.Сделать выводы и оформить отчет о проделанной лабораторной работе. Приложение 1
Формы представления чисел в ЭВМ
Числа с фиксированной точкой
Ранее рассмотренное машинное представление целого числа можно трактовать как представление числа с фиксированной точкой. Число с фиксированной точкой имеет один знаковый разряд, остальные разряды являются значащими. «Фиксированная точка» означает, что любое целое число можно трактовать как некоторую дробь, умноженную на соответствующий масштабный множитель. К достоинствам использования чисел с фиксированной точкой относятся простота выполнения арифметических операций. К недостаткам – небольшой диапазон представления чисел. Числа с плавающей точкой
В формате с фиксированной точкой нельзя представить очень большие числа или очень маленькие. При выполнении деления двух больших чисел, как правило, теряется дробная часть частного. При работе в десятичной системе счисления ученые давно нашли выход из положения, применяя для представления числовых величин так называемую научную нотацию
(способ записи). Так, число 976 000 000 000 000 можно представить в виде 9.76·1014
, а число 0.000 000 000 000 097 6 – в виде 9.76·10 - 14
. При этом разделительная точка динамически сдвигается в удобное место, а для того чтобы "уследить" за ее положением в качестве второго множителя – характеристики,
– используется степень числа 10 (основание характеристики). Это позволяет с помощью небольшого числа цифр (т.е. чисел с ограниченной разрядностью) с успехом представлять как очень большие, так и очень малые величины. Этот же подход можно применить и в двоичной системе счисления. Число можно представить в виде
Компоненты такого представления можно сохранить в двоичном слове, состоящем из трех полей: • поле знака числа (плюс или минус); • поле мантиссы m
;
• поле порядка p
.
Основание характеристики q
во всех существующих стандартах такой формы представления подразумевается неявно и не сохраняется, поскольку оно одинаково для всех чисел. Принципы представления двоичных чисел в формате с плавающей точкой лучше пояснять на примерах. На рисунке схематически показан 32-разрядный формат с плавающей точкой. В крайнем левом бите слова хранится знак числа (как обычно, положительному числу соответствует значение 0, а отрицательному – значение 1). В следующих восьми битах хранится значение порядка. Для представления порядка используется так называемый смещенный формат
. Рис. 3.1 Для получения действительного двоичного кода порядка необходимо вычесть из значения в этом поле фиксированное смещение.
Обычно смещение равно (2k
-1
– 1). Например, при k
=8
смещение равно 127. Последние 23 бита отводятся под значение мантиссы. Любое число можно представить в виде числа с плавающей точкой множеством способов. С изменением порядка точка перемещается (плавает) влево или вправо. Например,
Поэтому для установления однозначности при записи чисел принята нормализованная форма записи числа
. Мантисса нормализованного числа может изменяться в диапазоне:
ненормализованное нормализованное число число Следовательно, в двоичном представлении нормализованная мантисса числа, отличного от нуля, всегда имеет вид:
Здесь, b – это произвольная двоичная цифра (0 или 1). Так как старший значащий разряд всегда хранит 1, то его нет смысла запоминать, просто необходимо учитывать это факт при совершении дальнейших действий. Поэтому в 23-х битах фактически хранится код 24-х битовой мантиссы. Например, 0.11010001· 210100
→ 0 10010011 10100010000000000000000 – 0.11010001· 210100
→ 1 10010011 10100010000000000000000 0.11010001· 2-10100
→ 0 01101011 10100010000000000000000 – 0.11010001· 2-10100
→ 1 01101011 10100010000000000000000 Обратите внимание на следующие особенности:
Рис. 3.2 На рис. 3.2 показано, какой диапазон чисел можно представить в рассмотренном 32-разрядном формате с плавающей точкой. Если в слове такой же длины хранить целые числа в дополнительном коде, то диапазон представления будет охватывать 232
чисел от –231
до 231
–1 включительно. В формате с плавающей точкой можно хранить: Формат с плавающей точкой не позволяет представить больше чем в формате с фиксированной точкой отличающихся друг от друга
числовых величин – их количество по-прежнему равно 232
для слова длиной 32 бит. Речь идет только о том, что эти числовые величины по-иному распределены на числовой оси. Интервал между соседними числами (кодовыми комбинациями, отличающимися значением в младшем разряде мантиссы) – переменный и зависит от абсолютной величины числа. "Соседние" числа, ближе расположенные к центру числовой оси, отличаются на меньшую величину, чем "соседние" числа более удаленные от центра числовой оси (рис. 3.3). Рис. 3.3 Для унификации представления чисел с плавающей точкой институт инженеров по электротехнике и радиоэлектронике (IEEE) разработал стандарт IEEE 754. В последнее десятилетие практически все процессоры проектируются с учетом этого стандарта. Приведенный выше пример представляет формат с плавающей точкой обычной точности. Таким образом, для представления числа в формате IEEE 754 с плавающей точкой с обычной точностью необходимо придерживаться следующего алгоритма: 1) представить число в двоичном виде – 10.62510
= 1010.101; 2) записать число в научной нотации, мантисса должна быть нормализована – 1010.101 = 0.1010101· 24
= 0.1010101· 2100
; 3) записать знак числа – 0; 4) записать порядок – 410
+ 12710
= 100 + 0111 1111=1000 0011; 5) привести окончательную запись числа – 0 10000011 01010100000000000000000. Приложение
2
Форматы представления текста в ЭВМ
Для представления текстовой информации используется алфавитное кодирование, т.е. каждому символу – значку, цифре или букве, ставится в соответствии его двоичный код. Американский национальный институт стандартов (ANSI) принял 8 – битный код для текстовой информации ASCII –American Standard Code for Information Interchange. Изначально предполагалось использовать только 7 бит (127 – вариантов символов), а восьмой оставить для контроля. Поэтому в стандарте строго регламентированы только первые 128 (0 – 127) позиций. Широкое распространение ASCII – кодов привело к тому, что их стало не хватать для символов различных языков и других целей. Поэтому оставшиеся возможности (128 – 255) стали использовать под различные национальные кодировки. В связи с этим первые 128 позиций строго регламентированы, а оставшиеся позиции используются по мере необходимости. В России для отображения кириллицы широкое распространение получили следующие варианты кодировок: КОИ8, 866-MS DOS, 1251-Windows. Таблица 3.1 0 (nul)
16 ►
(dle)
32 (sp)
48 0
64 @
80 P
96 ` 112 p
1☺
(
soh)
17 ◄
(dc1)
33 !
49 1
65 A
81 Q
97 a
113 q
2☻
(stx)
18 ↕
(dc2)
34 "
50 2
66 B
82 R
98 b
114 r
3 ♥
(etx)
19 ‼
(dc3)
35 #
51 3
67 C
83 S
99 c
115 s
4 ♦
(eot)
20 ¶ (dc4)
36 $
52 4
68 D
84 T
100 d
116 t
5 ♣
(enq
)
21 § (nak)
37 %
53 5
69 E
85 U
101 e
117 u
6 ♠
(ack)
22 ▬
(syn)
38 &
54 6
70 F
86 V
102 f
118 v
7 • (bel)
23 ↨
(etb)
39 '
55 7
71 G
87 W
103 g
119 w
8 ◘
(bs)
24 ↑
(can)
40 (
56 8
72 H
88 X
104 h
120 x
9 (tab)
25 ↓
(em)
41 )
57 9
73 I
89 Y
105 i
121 y
10 (lf)
26 → (eof)
42 *
58 :
74 J
90 Z
106 j
122 z
11 ♂
(vt)
27 ← (esc)
43 +
59 ;
75 K
91 [
107 k
123 {
12 ♀
(np)
28 ∟
(fs)
44 ,
60 <
76 L
92 \
108 l
124 |
13 (cr)
29 ↔ (gs)
45 -
61 =
77 M
93 ]
109 m
125 }
14 ♫
(so)
30
▲
(rs)
46 .
62 >
78 N
94 ^
110 n
126 ~
15 ☼
(
si
)
31 ▼
(
us
)
47 /
63 ?
79 O
95 _
111 o
127 ⌂
Далее приводятся ASCII – коды кириллицы в варианте 866-MS DOS. Таблица 3.2 128 А
144 Р
160 а
176 ░
192 └
208 ╨
224 р
240 Ё
129 Б
145 С
161 б
177 ▒
193 ┴
209 ╤
225 с
241 ё
130 В
146 Т
162 в
178 ▓
194 ┬
210 ╥
226 т
242 Є
131 Г
147 У
163 г
179 │
195 ├
211 ╙
227 у
243 є
132 Д
148 Ф
164 д
180 ┤
196 ─
212 ╘
228 ф
244 Ї
133 Е
149 Х
165 е
181 ╡
197 ┼
213 ╒
229 х
245 ї
134 Ж
150 Ц
166 ж
182 ╢
198 ╞
214 ╓
230 ц
246 Ў
135 З
151 Ч
167 з
183 ╖
199 ╟
215 ╫
231 ч
247 ў
136 И
152 Ш
168 и
184 ╕
200 ╚
216 ╪
232 ш
248 °
137 Й
153 Щ
169 й
185 ╣
201 ╔
217 ┘
233 щ
249 ∙
138 К
154 Ъ
170 к
186 ║
202 ╩
218 ┌
234 ъ
250 ·
139 Л
155 Ы
171 л
187 ╗
203 ╦
219 █
235 ы
251 √
140 М
156 Ь
172 м
188 ╝
204 ╠
220 ▄
236 ь
252 №
141 Н
157 Э
173 н
189 ╜
205 ═
221 ▌
237 э
253 ¤
142 О
158 Ю
174 о
190 ╛
206 ╬
222 ▐
238 ю
254 ■
143 П
159 Я
175 п
191 ┐
207 ╧
223 ▀
239 я
255 Задание
1. Представить числа в формате с плавающей точкой обычной точности. 2. Перевести число из двоичного формата с плавающей точкой обычной точности в десятичное представление. 3. Используя ASCII кодировку в варианте 866 (MS-DOS), представить в двоичном виде текст. 4. Расшифровать ASCII код. Контрольные вопросы
1. Объясните необходимость использования «смещенного порядка» в машинной записи числа с плавающей точкой. 2. Раскройте термин «нормализованная мантисса». 3. Чем отличаются машинные представления чисел 0.0 и 0.5 ∙ 10-127
4. Объясните большое разнообразие ASCII кодировок для кириллицы. Варианты заданий к лабораторной работе
№1
1) 32128. 25; – 20.0056 2) 0 11100010 01111000001110000000000 1 11100010 01111000001110000000000 3) «Привет student № 1» 4) 48 65 6C 6C 6F 20 4E 31 №2
1) 10128. 025; – 320.054 2) 0 11000010 01101000001110000000000 1 11000010 01101000001110000000000 3) «Привет student № 2» 4) 48 65 6C 6C 6F 20 4E 32 №3
1) 9711. 34; – 120.059 2) 0 10100010 00111000001110000000000 1 10100010 00111000001110000000000 3) «Привет student № 3» 4) 48 65 6C 6C 6F 20 4E 33 №4
1) 318. 725; – 51.76 2) 0 11100000 01111000000110000000000 1 11100000 01111000000110000000000 3) «Привет student № 4» 4) 48 65 6C 6C 6F 20 4E 34 №5
1) 12128.1; – 2001.46 2) 0 11101010 01110000001110000000000 1 11101010 01110000001110000000000 3) «Привет student № 5» 4) 48 65 6C 6C 6F 20 4E 35 №6
1) 1028. 35; – 10.64 2) 0 11100010 01111000001010000000000 1 11100010 01111000001010000000000 3) «Привет student № 6» 4) 48 65 6C 6C 6F 20 4E 36 №7
1) 402128. 5; – 123.6 2) 0 11100010 01101000001110000000000 1 11100010 01101000001110000000000 3) «Привет student № 7» 4) 48 65 6C 6C 6F 20 4E 37 №8
1) 1222.8; б) – 23.19 2) 0 11100010 01101000001110000000000 1 11100010 01101000001110000000000 3) «Привет student № 8» 4) 48 65 6C 6C 6F 20 4E 38 №9
1) 33128. 625; – 21.056 2) 0 11100011 11111000001110001100000 1 11100011 11111000001110001100000 3) «Hello студент № 9» 4) 39 20 20 79 65 61 72 20 0D 0A №10
1) 128. 025; – 324.054 2) 0 11010010 01111000001110000000000 1 11010010 01111000001110000000000 3) «Hello студент № 10» 4) 31 30 20 64 61 79 20 0D 0A №11
1) 9011. 34; – 126.59 2) 0 10100010 00111000001110001100000 1 10100010 00111000001110001100000 3) «Hello студент № 11» 4) 48 65 6C 6C 6F 20 4E 33 №12
1) 310. 725; – 501.76 2) 0 11100010 01111000000110000000000 1 11100010 01111000000110000000000 3) «Hello студент № 12» 4) 48 65 6C 6C 6F 20 4E 34 №13
1) 1128.1; – 204.56 2) 0 11101110 01110000001110000000000 1 11101110 01110000001110000000000 3) «Привет student № 13» 4) 48 65 6C 6C 6F 20 4E 35 №14
1) 1328. 35; – 13.64 2) 0 11100010 01111001001010000000000 1 11100010 01111001001010000000000 3) «Привет student № 14» 4)48 65 6C 6C 6F 20 4E 36 №15
1) 4028. 5; б) – 1233.6 2) 0 01100011 01101000001110000000000 1 01100011 01101000001110000000000 3) «Привет student № 15» 4) 48 65 6C 6C 6F 20 4E 37 №16
1) 222.8; – 233.19 2) 0 01100110 01101000001110000000000 1 01100110 01101000001110000000000 3) «Hello студент № 16» 4) 48 65 6C 6C 6F 20 4E 38 №17
1) 3228. 25; – 10.0056 2) 0 01100010 11111000001110000000000 1 01100010 11111000001110000000000 3) «Hello студент № 17» 4) 48 65 6C 6C 6F 20 4E 31 №18
1) 10128. 025; – 320.054 2) 0 11000010 01101000001110000000000 1 11000010 01101000001110000000000 3) «Hello студент № 18» 4) 48 65 6C 6C 6F 20 4E 32 №19
1) 711. 34; – 720.059. 2) 0 00100010 00111000001110000000000 1 00100010 00111000001110000000000 3) «Hello студент № 19» 4) 48 65 6C 6C 6F 20 4E 33 №20
1) 3138. 725; – 451.76. 2) 0 00100000 01111000000110000000000 1 00100000 01111000000110000000000 3) «Привет student №20» 4) 48 65 6C 6C 6F 20 4E 34
|