我正在阅读 Kerninghan 和 Ritchie 的 C 编程语言书,在第 37 页上提到了字节大小的位模式,例如:
'\013'
对于垂直标签。
'\007'
为钟字符。
我的疑问:
- 它的字节大小是多少,位模式是什么?
- 这有什么相关性,我可以在哪里应用它?
- 它在任何意义上与转义序列有关吗?
我似乎无法在网络上找到任何关于这些字节大小的位模式的信息。请帮忙 。谢谢 。
我正在阅读 Kerninghan 和 Ritchie 的 C 编程语言书,在第 37 页上提到了字节大小的位模式,例如:
'\013'
对于垂直标签。
'\007'
为钟字符。
我的疑问:
我似乎无法在网络上找到任何关于这些字节大小的位模式的信息。请帮忙 。谢谢 。
'\007
)被转换为位模式(最高有效位在前)将是 0000 0111。'\013'
将是位模式 0000 1011'\007'
是一个转义序列。也是如此'\\'
。最初开发和使用 C 语言时,最初的目标是PDP-11 小型计算机。PDP-11 有一个 16 位处理器。当时大多数输入是通过某种版本的电传打字终端或电传打字终端(带有印刷纸的键盘而不是阴极射线管)完成的。后来阴极射线管类型的终端被放置到位,例如DEC-VT100 终端取代了纸质终端。
这些终端使用电缆连接到主机,以在终端和主机之间进行通信。对于短电缆运行,使用RS-232 标准,通常仅使用 25 个引脚中的三个(发送、接收和接地),并在终端和主机之间进行软件握手。RS-422 标准用于更长的电缆运行。直接连接的数据传输速率通常为 9600波特或 14,400 波特。
在远程终端使用公共交换电话网络到达主机的情况下,在连接的每一端都使用调制解调器将数字信号转换和不转换为声音信号,以便通过电话线传输。在终端键盘上键入的字符通过电缆传输到主机。大多数调制解调器使用事实上的Hayes 命令集标准的一些变体。
PDP-11 使用ASCII 字符集,该字符集使用七位代码表示每个字符,第八位用于实现简单的奇偶校验错误检查协议。后来通过使用奇偶校验位作为字符的一部分来扩展 ASCII 字符集,以便添加来自欧洲语言的字符以开发扩展 ASCII 和 ANSI 字符集以及用于在 CRT 类型上设置文本颜色的ANSI 转义码序列显示。
原始的 ASCII 代码有一段代码用于终端控制,例如响铃、垂直和水平制表符、换行或行尾等。还有一些代码用于创建简单的协议,如 Start和停止代码。一种这样的默认标准是使用转义字符来指示控制序列的开始,例如文本颜色的开始,或者将光标移动到显示器上的特定行和列。
使用现代图形用户界面,尽管仍有终端仿真器可以将 ANSI 转义码转换为图形窗口中的各种显示行为,但其中大部分都相当陈旧且未使用。
因此,当 Kerninghan 和 Ritchie 在 PDP-11 上开发 C 和 Unix 操作系统时,他们在 DEC PDP-11 指令集、ASCII 字符集和 PDP-11 外围设备(如电传打印机)的环境中工作。
因此,他们自然而然地选择了由 8 位字符组成的文本字符串,并通过在字符串中嵌入特殊控制字符的方式来敲响电传打字机的铃声并在打印文本行时控制打字头。
它只是一种以 8 进制(八进制)输入字符(字节)值的机制。通常用于在字符串或字符常量中添加控制和类似字符。