Методические указания для проведения лабораторной работы Томск 2009
СОДЕРЖАНИЕ: Цель работы: изучение понятия – «машинное представление информации», машинное представление действительных чисел, машинное представление текстовой информации (ascii – коды)Министерство образования Российской Федерации
Томский политехнический университет
Кафедра компьютерных измерительных систем и метрологии
________________________________________________
И Н Ф О Р М А Т И К А
Кодирование информации. Основные форматы данных.
(Часть вторая)
Методические указания для проведения
лабораторной работы
Томск 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 (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