Есть ли какая-либо логика для заказа кодов ASCII?
Я преподавал C моему младшему брату, изучающему технику. Я объяснял ему, как различные типы данных фактически хранятся в памяти. Я объяснил ему логистику за подписью/беззнаковым числом и битом с плавающей запятой в десятичных числах. Пока я рассказывал ему о типе char в C, я также взял его через систему кода ASCII, а также как char также хранится как 1 байт.
Он спросил меня, почему "А" получил код ascii 65, а не что-нибудь еще? Аналогично, почему "а" задан код 97 конкретно? Почему существует пробел в 6 ascii между диапазоном заглавных букв и маленькими буквами? Я понятия не имел об этом. Можете ли вы помочь мне понять это, так как это вызвало у меня большое любопытство. Я до сих пор не нашел ни одной книги, которая обсуждала эту тему.
В чем причина этого? Логически организованы логические коды ASCII?
Ответы
Ответ 1
Есть исторические причины, в основном, чтобы легко преобразовать коды ASCII:
Цифры (от 0x30 до 0x39) имеют бинарный префикс 110000:
0 is 110000
1 is 110001
2 is 110010
и т.д..
Поэтому, если вы уничтожите префикс (первые два "1" ), вы получите цифру в двоичном кодированном десятичном значении.
Заглавные буквы имеют бинарный префикс 1000000:
A is 1000001
B is 1000010
C is 1000011
и т.д..
То же самое, если вы удалите префикс (первый "1" ), вы получите алфавитно-индексированные символы (A - 1, Z - 26 и т.д.).
Строчные буквы имеют двоичный префикс 1100000:
a is 1100001
b is 1100010
c is 1100011
и т.д..
То же, что и выше. Поэтому, если вы добавите 32 (100000) в заглавную букву, у вас есть версия в нижнем регистре.
Ответ 2
Эта диаграмма показывает это довольно хорошо из википедии: обратите внимание на два столбца управления 2 верхнего 2 нижнего, а затем пробелы, заполненные разным.
![ASCII Chart on Wikipedia]()
Также имейте в виду, что ASCII был разработан на основе того, что прошло раньше. Более подробную информацию об истории ASCII см. В этой превосходной статье Тома Дженнингса, которая также включает в себя значение и использование некоторых элементов управления незнакомцами символы.
Ответ 3
Вот очень подробная история и описание кодов ASCII: http://en.wikipedia.org/wiki/ASCII
Короче говоря:
- ASCII основан на стандартах кодирования телепринтера
- первые 30 символов являются "непечатными" - используются для форматирования текста
- то они продолжаются с печатными символами, примерно так, чтобы они были размещены на клавиатуре. Проверьте свою клавиатуру:
- пробел,
- Значок верхнего регистра на колпачках:!, ", #,...,
- numbers
- знаки обычно помещаются в конец строки клавиатуры с номерами - верхний регистр
- заглавные буквы, в алфавитном порядке
- знаки обычно помещаются в конце строк клавиатуры с буквами - верхний регистр
- маленькие буквы, в алфавитном порядке
Знаки
- обычно помещаются в конце строк клавиатуры с буквами - нижний регистр
Ответ 4
Расстояние между A
и A
равно 32. Это довольно круглое число, не так ли?
Разрыв 6 символов между заглавными буквами и малыми буквами состоит в том, что (32 - 26) = 6. (Примечание: в английском алфавите есть 26 букв).
Ответ 5
- "A" равен 0x41 в шестнадцатеричном виде.
- 'a' равен 0x61 в шестнадцатеричном формате.
- '0' thru '9' - 0x30 - 0x39 в hexidecimal.
Поэтому, по крайней мере, легко запомнить числа для A
, A
и 0-9
. Я понятия не имею о символах. См. Статья в Википедии по заказу ASCII.
Ответ 6
Если вы посмотрите на двоичные представления для "a" и "A", вы увидите, что они отличаются только на 1 бит, что очень полезно (поворот верхнего регистра в нижний регистр или наоборот) переворачивания бит). Зачем начинать там конкретно, я понятия не имею.
Ответ 7
Wikipedia:
Сам код был структурирован таким образом, чтобы большинство контрольных кодов были вместе, и все графические коды были вместе. первые две колонки (32 позиции) были зарезервировано для управляющих символов. [14] "Космический" персонаж должен был прийти перед графикой сделать сортировку алгоритмов легко, поэтому он стал позиционировать 0x20. [15] Комитет решил, что это важно поддерживать верхний регистр 64-символьные алфавиты и выбрали структуры ASCII, так что это может быть легко сведенный до 64-символьного набора графических кодов. [16] Нижний регистр буквы не были чередованием с верхним регистром. Чтобы открыть параметры для строчных букв и других графики, специальные и числовые коды были помещены перед буквами, и буква "А" была помещена в положение 0x41 в соответствии с черновиком соответствующий британский стандарт. [17] Цифры 0-9 были помещены так, чтобы они соответствовали значениям в бинарный префикс с 011, что делает преобразование с десятичной запятой прямой.