Подтвердить что ты не робот

Есть ли какая-либо логика для заказа кодов ASCII?

Я преподавал C моему младшему брату, изучающему технику. Я объяснял ему, как различные типы данных фактически хранятся в памяти. Я объяснил ему логистику за подписью/беззнаковым числом и битом с плавающей запятой в десятичных числах. Пока я рассказывал ему о типе char в C, я также взял его через систему кода ASCII, а также как char также хранится как 1 байт.

Он спросил меня, почему "А" получил код ascii 65, а не что-нибудь еще? Аналогично, почему "а" задан код 97 конкретно? Почему существует пробел в 6 ascii между диапазоном заглавных букв и маленькими буквами? Я понятия не имел об этом. Можете ли вы помочь мне понять это, так как это вызвало у меня большое любопытство. Я до сих пор не нашел ни одной книги, которая обсуждала эту тему.

В чем причина этого? Логически организованы логические коды ASCII?

4b9b3361

Ответ 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, что делает преобразование с десятичной запятой прямой.