Министерство образования Российской Федерации
Томский политехнический университет
Кафедра компьютерных измерительных систем и метрологии
________________________________________________
И Н Ф О Р М А Т И К А
Кодирование информации. Основные форматы данных.
(Часть вторая)
Методические указания для проведения
лабораторной работы
Томск 2009
Дисциплина
: Информатика.
Время выполнения
: 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 бита отводятся под значение мантиссы. Любое число можно представить в виде числа с плавающей точкой множеством способов. С изменением порядка точка перемещается (плавает) влево или вправо. Например,
Поэтому для установления однозначности при записи чисел принята нормализованная форма записи числа
. Мантисса нормализованного числа может изменяться в диапазоне: (q
=2
, ). Таким образом, в нормализованных числах первая цифра после точки должна быть значащей. Например,
ненормализованное нормализованное
число число
Следовательно, в двоичном представлении нормализованная мантисса числа, отличного от нуля, всегда имеет вид:
.
Здесь, 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
Обратите внимание на следующие особенности:
знак сохраняется в старшем бите слова;
первый разряд мантиссы всегда
равен 1, и в поле мантиссы не хранится;
к действительному значению порядка прибавляется смещение 127, и в поле порядка хранится эта сумма;
основание характеристики всегда равно 2 и поэтому не хранится.
Рис. 3.2
На рис. 3.2 показано, какой диапазон чисел можно представить в рассмотренном 32-разрядном формате с плавающей точкой. Если в слове такой же длины хранить целые числа в дополнительном коде, то диапазон представления будет охватывать 232
чисел от –231
до 231
–1 включительно. В формате с плавающей точкой можно хранить:
отрицательные числа от – (1– 2–24
) × 2128
до – 0.5 × 2 –127
;
положительные числа от 0.5 × 2 –127
до (1–2 –24
) × 2128
.
Формат с плавающей точкой не позволяет представить больше чем в формате с фиксированной точкой отличающихся друг от друга
числовых величин – их количество по-прежнему равно 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 ►
|
32 (sp)
|
48 0
|
64 @
|
80 P
|
96 ` |
112 p
|
1☺
|
17 ◄
|
33 !
|
49 1
|
65 A
|
81 Q
|
97 a
|
113 q
|
2☻
|
18 ↕
|
34 "
|
50 2
|
66 B
|
82 R
|
98 b
|
114 r
|
3 ♥
|
19 ‼
|
35 #
|
51 3
|
67 C
|
83 S
|
99 c
|
115 s
|
4 ♦
|
20 ¶ (dc4)
|
36 $
|
52 4
|
68 D
|
84 T
|
100 d
|
116 t
|
5 ♣
|
21 § (nak)
|
37 %
|
53 5
|
69 E
|
85 U
|
101 e
|
117 u
|
6 ♠
|
22 ▬
|
38 &
|
54 6
|
70 F
|
86 V
|
102 f
|
118 v
|
7 • (bel)
|
23 ↨
|
39 '
|
55 7
|
71 G
|
87 W
|
103 g
|
119 w
|
8 ◘
|
24 ↑
|
40 (
|
56 8
|
72 H
|
88 X
|
104 h
|
120 x
|
9 (tab)
|
25 ↓
|
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 ♂
|
27 ← (esc)
|
43 +
|
59 ;
|
75 K
|
91 [
|
107 k
|
123 {
|
12 ♀
|
28 ∟
|
44 ,
|
60 <
|
76 L
|
92
|
108 l
|
124 |
|
13 (cr)
|
29 ↔ (gs)
|
45 -
|
61 =
|
77 M
|
93 ]
|
109 m
|
125 }
|
14 ♫
|
30
|
46 .
|
62 >
|
78 N
|
94 ^
|
110 n
|
126 ~
|
15 ☼
|
31 ▼
|
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