
- •Алгоритмизация и основы программирования
- •Оглавление
- •Библиографический список
- •1.Позиционные системы счисления
- •2.Переходы между основными системами счисления
- •3.Основные шестнадцатеричные константы
- •4.Реализация целочисленных операций
- •5.Представление отрицательных чисел
- •6.Целочисленные типы данных в языке Си
- •7.Вещественные типы данных в языке Си
- •8.Кодирование символов
- •9.Контрольные вопросы.
8.Кодирование символов
Для кодирования символов с помощью одного байта используется ASCII-таблица (American Standard Code for Information Interchange-табл.5).
Таблица 5
ASCII – таблица символов
Основная таблица ASCII |
Расширенная таблица ASCII |
|
|
В ASCII-таблице содержатся различные символы и соответствующие им коды. Например, символу ‘0’ соответствует код 0x30 = 48. Символы и строки хранятся в памяти в виде соответствующих кодов из ASCII-таблицы. Например, строка "123" в памяти будет храниться в виде последовательности байт 0х31 0х32 0х33 0х00. Иногда строки, у которых 0 является признаком конца, называют asciiz-строками.
Символу ‘b’ соответствует ASCII-код 0x62. В десятичной системе это будет 98, а в двоичной – 01100010. Таблицы символов для разных шрифтов можно найти с помощью программы Пуск – Стандартные – Системные утилиты – Таблица Символов.
В русской кодировочной странице 866 буква Ё имеет код 0xF0, а буква ё – код 0хF1.
В языке Си символьные константы обозначаются ‘\xxx’, где ххх – код этого символа, записанный в восьмеричной СС. Иначе говоря, ‘\xxx’ – это код символа, у которого код равен ххх. Например, ‘b’ = ‘\142’.
Примеры
1. Количество букв в английском алфавите равно ‘Z’ – ‘A’ + 1.
2. Количество букв в русском алфавите равно ‘Я’ – ‘А’ + 2.
9.Контрольные вопросы.
Почему системы счисления с основаниями 2, 8 и 16 являются родственными?
Можно ли по содержимому двухбайтового числа сказать, является ли оно отрицательным?
Почему компилятор не проверяет выход результата целочисленной операции за диапазон типа?
Преобразовать в 10-ичную СС
10000110002
11118
100023
Преобразовать к десятично-буквенной записи
0xFА120, 0x352FFAA, 0x120112100
Определить размер области памяти с границами 13FA:12F0 и DAAD:DAAD
Вычислить в побитовом виде
30 + 70 в одном байте
-10 + 80 в одном байте
200 -100 в двух байтах
Преобразовать логический адрес A00A:30FF к нормализованной форме
Преобразовать в другую СС
0хFFF0AA в 8-ичную СС
2007 в 2-ичную СС
2048 в 16-ичную СС
Показать ошибочность операций
20 + 120 в одном байте со знаком
- 100 - 110 в одном байте со знаком
0x9AAA + 0xAAAA в двух байтах без знака
Подробнее: на сайте "Всевозможные нумерации и системы счисления. Адрес сайта: http://www.megalink.ru/~agb/n/numerat.htm.