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

Является ли код ASCII 7-битным или 8-битным?

Мой учитель сказал мне, что ASCII - это 8-битовая кодировка символов. Но он определяется только для 0-127 кодов, что означает, что он может быть помещен в 7 бит. Поэтому нельзя утверждать, что бит ASCII на самом деле является 7-битным кодом?

И что мы хотим сказать вообще, говоря, что ASCII - это 8-битный код вообще?

4b9b3361

Ответ 1

ASCII изначально был задуман как 7-битный код. Это было сделано задолго до того, как 8-битные байты стали вездесущими, и даже в 1990-х годах можно было найти программное обеспечение, которое предполагало, что оно может использовать 8-й бит каждого байта текста для своих собственных целей ("не чистое 8-битное"). В настоящее время люди думают об этом как о 8-битной кодировке, в которой байты от 0x80 до 0xFF не имеют определенного значения, но это реткон.

Есть десятки кодировок текста, которые используют 8-й бит; они могут быть классифицированы как ASCII-совместимые или нет, а также fixed- или переменной ширины. ASCII-совместимый означает, что независимо от контекста, одиночные байты со значениями от 0x00 до 0x7F кодируют те же символы, что и в ASCII. Вы не хотите иметь ничего общего с не ASCII-совместимой кодировкой текста, если можете избежать этого; Наивные программы, ожидающие ASCII, имеют тенденцию неверно истолковывать их катастрофическим, часто нарушающим безопасность способом. В настоящее время они настолько устарели, что (например) HTML5 запрещает их использование в общедоступной сети, за исключением, к сожалению, UTF-16. Я не буду больше говорить о них.

Кодирование ширины fixed- означает, как оно звучит: все символы кодируются с использованием одинакового количества байтов. Чтобы быть ASCII-совместимым, fixed- с кодировкой должен кодировать все свои символы, используя только один байт, поэтому он может содержать не более 256 символов. В настоящее время наиболее распространенной такой кодировкой является Windows-1252, расширение ISO 8859-1.

Есть только одна ASCII-совместимая кодировка переменной ширины, о которой стоит знать в настоящее время, но это очень важно: UTF-8, которая упаковывает весь Unicode в ASCII-совместимую кодировку. Вы действительно хотите использовать это, если вы можете управлять этим.

И последнее замечание: "ASCII" в настоящее время берет свое практическое определение от Unicode, а не от своего первоначального стандарта (ANSI X3.4-1968), потому что исторически существовало несколько десятков вариаций в 127-символьном репертуаре ASCII - например, некоторые из знаки препинания могут быть заменены акцентированными буквами для облегчения передачи текста на французском языке. В настоящее время все эти варианты устарели, и когда люди говорят "ASCII", они имеют в виду, что байты со значениями от 0x00 до 0x7F кодируют кодовые точки Unicode от U + 0000 до U + 007F. Возможно, это будет иметь значение только для вас, если вы когда-нибудь будете писать технический стандарт.

Если вы интересуетесь историей ASCII и предшествующими ему кодировками, начните с статьи "Эволюция кодов символов, 1874–1968" (копия самиздата по адресу http://falsedoor.com/doc/ascii_evolution-of- Character-codes.pdf), а затем преследовать его ссылки (многие из которых не доступны в Интернете и, может быть, трудно найти даже при доступе к университетской библиотеке, я сожалею сказать).

Ответ 2

В Linux man ascii говорится:

ASCII - это Американский стандартный код для обмена информацией. Это 7-битный код.

Ответ 3

Исходная таблица ASCII кодируется в 7 бит, поэтому имеет 128 символов.

В настоящее время большинство читателей/редакторов используют "расширенную" таблицу ASCII (от ISO 8859-1), которая кодируется в 8 бит и имеет 256 символов (включая Á, Ä, Œ, é, и другие символы, полезные для европейских языков, а также математические символы и другие символы).

В то время как UTF-8 использует ту же самую кодировку, что и базовая таблица ASCII (значение 0x41 равно A в обоих кодах), она не использует одну и ту же кодировку для блока Latin Latin-A. Иногда это приводит к появлению странных символов в таких словах, как à la carte или piñata.

Ответ 4

Кодировка ASCII является 7-битной, но на практике символы, закодированные в ASCII, не сохраняются в группах по 7 бит. Вместо этого один ASCII хранится в байте, причем MSB обычно устанавливается в 0 (да, он теряется в ASCII).

В этом можно убедиться, введя строку в наборе символов ASCII в текстовом редакторе, установив кодировку в ASCII и просмотрев двоичный/шестнадцатеричный код:
enter image description here

Кроме того: использование (строго) кодирования ASCII теперь редко, в пользу UTF-8 (который не тратит MSB, упомянутый выше - фактически, MSB, равный 1, указывает, что кодовая точка кодируется более чем 1 байтом).

Ответ 5

Исходный код ASCII предоставил 128 различных символов с номерами от 0 до 127. ASCII 7-бит является синонимом, поскольку 8-разрядный байт является общим элементом хранения, ASCII оставляет место для 128 дополнительных символов, которые используются для иностранных языков и другие символы. Но 7-битный код был оригинальным, сделанным до 8-битного кода. ASCII для Американского стандартного кода для обмена информацией В ранних интернет-почтовых системах он поддерживал только 7-битные коды ASCII, потому что тогда он мог выполнять программы и мультимедийные файлы поверх систем suck. Эти системы используют 8 бит байта, но затем его необходимо преобразовать в 7-битный формат с использованием методов кодирования, таких как MIME, UUcoding и BinHex. Это означает, что 8-бит был преобразован в 7-битные символы, что добавляет дополнительные байты для их кодирования.

Ответ 6

когда мы называем ASCII 7-битным кодом, самый левый бит используется в качестве знакового бита, поэтому с 7 битами мы можем записать до 127. Это означает от -126 до 127, потому что максимальное значение имама ASCII составляет от 0 до 255. Это может удовлетворяться только 7-битным аргументом, если последний бит считается знаковым битом