0

ASCII 仅用于字符。NULL不是字符,那为什么NULL的ASCII值是0

4

1 回答 1

15

ASCII 仅适用于 [可打印] 字符 [s]

不完全是:除了可打印字符外,ASCII 还包括一些控制字符。

ASCII 代码 0 (NUL) 就是这样一种控制字符。

引用维基百科

ASCII 为控制字符保留前 32 个代码(数字 0-31 十进制):代码最初不用于表示可打印信息,而是用于控制使用 ASCII 的设备(例如打印机),或提供有关数据的元信息流,例如存储在磁带上的流。例如,字符 10 代表“换行”功能(使打印机前进其纸张),字符 8 代表“退格”。

如今,NUL 字符最常用于表示C中字符串的结尾。然而,它最初的目的是不同的

这个字符的原始含义类似于 NOP——当发送到打印机或终端时,它什么也不做(但是,有些终端错误地将其显示为空格)。当机电式电传打印机被用作计算机输出设备时,在每行打印的末尾发送一个或多个空字符,以便机制有时间返回到下一行的第一个打印位置。在穿孔磁带上,字符完全没有孔,因此新的未穿孔磁带最初填充有空字符,并且通常可以通过将新字符穿孔到磁带上来将文本“插入”到空字符的保留空间空值。

于 2012-05-10T10:56:16.850 回答