2012-05-10 5 views
1

ASCII предназначен только для символов. NULL не характер, то почему NULL имеет значение ASCII 0ASCII NULL символ

+1

Вы не можете реализовать строки с нулевым символом без NUL. Его использование в этом контексте является значением * дозорного *. –

ответ

11

ASCII только для [для печати] символа [ы]

Не совсем: в дополнение к печати символы, ASCII также включает в себя число элементов управления символов.

Код ASCII 0 (NUL) является одним из таких символов управления.

Цитирую Wikipedia:

ASCII резервирует первые 32 (цифры 0-31 десятичных) для управляющих символов: коды изначально предназначенные не для представления информации для печати, а для управления устройствами (например, принтеры) которые используют ASCII или предоставляют метаинформацию о потоках данных, таких как хранящиеся на магнитной ленте. Например, символ 10 представляет собой функцию «line feed» (которая заставляет принтер продвигать свою бумагу), а символ 8 представляет собой «обратное пространство».

В наши дни символ NUL наиболее часто используется для обозначения конца символьной строки в C. Его первоначальная цель, однако, was different:

Первоначальное значение этого символа был как NOP - при отправке на принтер или терминал, он ничего не делает (некоторые терминалы, однако, неправильно отображать его в пространстве). Когда электромеханические телепринтеры использовались в качестве устройств вывода на компьютере, один или несколько нулевых символов были отправлены в конце каждой напечатанной линии, чтобы дать возможность механизму вернуться в первую позицию печати на следующей строке. На перфоленте персонаж вообще не имеет отверстий, поэтому новая безначальная лента изначально заполняется нулевыми символами, и часто текст может быть «вставлен» в зарезервированное пространство нулевых символов, перфорируя новые символы в ленту поверх нули.

+0

Извините, я не понимаю вашу точку зрения. – Abhinav

Смежные вопросы