- •1. Кибернетика и информатика
- •2.Представление информации в цифровых автоматах.
- •2.1. Системы счисления
- •2.2. Перевод чисел в системах счисления
- •2.2.1. Перевод двоичных чисел в восьмеричную и шестнадцатеричную системы счисления
- •2.2.2. Перевод чисел из восьмеричной и шестнадцатеричной систем счисления в двоичную систему счисления.
- •2.2.3. Перевод целых чисел в десятичную систему счисления.
- •2.2.4. Перевод целых чисел из десятичной системы счисления в систему счисления с основанием q
- •2.2.5. Перевод дробных чисел из десятичной системы счисления в систему счисления с основанием q
- •2.2.6. Перевод дробных чисел из произвольной позиционной системы счисления в десятичную систему счисления
- •2.3. Хранение информации в памяти эвм
- •2.3.1. Хранение в эвм целых чисел
- •2.3.2. Хранение в эвм дробных чисел
- •2.3.3 Представление символьной информации в компьютере
- •2.3.3.1 Идея кодовой таблицы
- •2.3.3.2 Кодовые таблицы
- •2.3.4. Кодирование графической информации
- •111111010 - Единицы переноса
- •1001101 - Второе слагаемое
- •110101 - Вычитаемое
- •3.2. Использование дополнительного кода
- •3.3. Сложение и вычитание в восьмеричной системе счисления
- •3.4. Сложение и вычитание в шестнадцатеричной системе счисления
- •Приложение 1
- •Приложение 2 Задания для самостоятельного решения
- •Требования к оформлению заданий
- •Источники литературы
2.3.3 Представление символьной информации в компьютере
Для представления символьной (текстовой) информации в компьютере используются так называемые кодовые таблицы символов.
2.3.3.1 Идея кодовой таблицы
Каким образом после нажатия клавиши с изображением латинской буквы «А» эта буква появляется на экране? Ведь машина понимает только
нули и единицы!
Нажатие клавиши посылает в компьютер двоичное число — комбинацию нулей и единиц (один байт). Каждую комбинацию можно интерпретировать как десятичное число от 0 до 255. Например, при нажатии клавиши «А» посылается число 01000001 (десятичное 65). Для машины это число может служить номером «литеры» с изображением А, которая хранится в памяти машины. Специальные электронные схемы по этому номеру находят «литеру» и «печатают» ее на экране. Послав в машину комбинацию 01000010 (66), мы увидим на экране латинскую В.
В кодовой таблице символов каждой букве, цифре, служебному знаку присвоен какой-либо код — десятичное число в диапазоне от 0 до 255 (больше нельзя, так как уже 256 не уместится в одном байте). Таким образом можно закодировать ровно 256 символов.
Кроме алфавитно-цифровых символов, отображаемых на экране и бумаге, необходимо иметь также группу кодов, которые предназначены не для воспроизведения, а для управления программно-аппаратными компонентами машины. Например, посылка на принтер символа с кодом 13 заставляет головку принтера вернуться к началу строки; символ с кодом 10 воспринимается как команда протянуть бумагу на одну строку, — так, что пришедший за ними, скажем, символ «С» будет напечатан в начале следующей строки.
Символами кодовой таблицы в компьютерной технологии представляется текст (буквы, цифры, служебные знаки) — в текстовых файлах, в текстовых документах, в сообщениях и страницах Internet и т. д.
2.3.3.2 Кодовые таблицы
Итак, в кодовой таблице можно представить 256 произвольных символов — управляющих кодов, букв, цифр, знаков препинания, вообще любых графических образов. По какому принципу составлена приводимая ниже кодовая таблица нашего компьютера? Прежде всего она делится на две половины (с кодами от 0 до 127 и от 128 до 255).
Стандарт ASCII. Во всем мире в качестве стандарта принята таблица ASCII (American Standard Code for Information Interchange), кодирующая ровно половину возможных символов — от 0 до 127. Первая половина кодовой таблицы показана на рис. 2.2.
000 |
011 ♂ |
022 - |
033 ! |
044 , |
055 7 |
066 В |
077 M |
088 X |
099 с |
110 n |
121 у |
001 ☺ |
012 ♀ |
023 ↨ |
034 " |
045 - |
056 8 |
067 С |
078 N |
089 У |
100 d |
111 о |
122 z |
002 ☻ |
013 ♪ |
024↑ |
035 # |
046 . |
057 9 |
068 D |
079 0 |
090 Z |
101 е |
112 p |
123 { |
003 ♥ |
014 ♫ |
025 ↓ |
036 $ |
047 / |
058 : |
069 Е |
080 Р |
091 [ |
102 f |
113 q |
124 : |
004 ♦ |
015٭ |
026 → |
037 % |
048 0 |
059 ; |
070 F |
081 Q |
092 \ |
103 g |
114 r |
125 } |
005 ♣ |
016 ► |
027 ← |
038 & |
049 1 |
060 < |
071 G |
08Z R |
093 ] |
104 h |
115 s |
126 ~ |
006 ♠ |
017 ◄ |
028 ∟ |
039 ' |
050 2 |
061 = |
072 Н |
083 S |
094 ^ |
105 i |
116 t |
127 ⌂ |
007 ● |
018 ↕ |
029 ↔ |
040 ( |
051 3 |
062 > |
073 I |
084 T |
095 _ |
106 j |
117 u |
|
008 ◘ |
019 !! |
030 ▲ |
041 ) |
052 4 |
063 ? |
074 J |
085 U |
096 ' |
107 k |
118 v |
|
009 ○ |
020 π |
031 » |
042 * |
053 5 |
064 в |
075 К |
086 V |
097 а |
108 1 |
119 w |
|
010 ◙ |
021 § |
032 |
043 + |
054 6 |
065 А |
076 L |
087 W |
098 b |
109 m |
120 x |
|
Рис. 2.2. Первая половина кодовой таблицы символов (ASCII)
Вторая половина кодовой таблицы (с кодами от 128 до 255) не определена американскими стандартами и предназначена для размещения символов национальных алфавитов (в частности, кириллицы), псевдографических символов, некоторых математических знаков. В разных странах, на разных моделях ПК, в разных операционных системах могут использоваться и разные варианты второй половины кодовой таблицы (их называют расширениями ASCII).
Таблицы с кодами 128—255, которые используются: в MS-DOS и Windows, называются страницами (Code Page, CP). причем для указания на ту или иную страницу используют порядковый номер, например, СР-866, СР-870, СР-1251.
СР-866 и СР-1251. В MS-DOS для русского языка используется так называемая альтернативная таблица, которая получила номер 866.
В среде Windows для русского языка используется другая таблица — СР-1251.
Русские буквы в этой таблице расположены на других позициях; кроме того, в СР-1251 нет псевдографических символов.
Все символы кодовой таблицы (за исключением двух «пустых» символов 0 и 255, а также пробела) имеют графические образы, однако не каждый символ можно ввести в машину одним нажатием клавиши. Тем не менее, ниже мы рассмотрим способ ввода в текстовый файл любого символа таблицы, а также возможные последствия такого ввода.
Unicode. Общим и принципиальным недостатком всех однобайтовых таблиц является отсутствие в коде символа какой-либо информации о номере страницы. Другими словами, программа, получив на входе набор символов, воспроизводит его по своему разумению, нимало не интересуясь его происхождением. Например, драйверы MS-DOS, получив пару символов с кодами 224 и 227, обращаются к таблице 866 и воспроизводят их как «ру». Однако, если эти символы набирались в среде Windows, они означают совсем другое — «аг».
Поэтому консорциумом (сообществом фирм) Unicode предложена ныне в качестве стандарта другая система кодировки символов. В этой системе для представления одного символа используются два байта (16 битов), и это позволяет включить в код символа информацию о том, какому языку принадлежит символ и как его надо воспроизводить. Правда, объем текстовой информации увеличивается вдвое, зато это дает возможность избавиться от многочисленных проблем, связанных с наличием в мире множества языков и кодировок.
