计算机究竟如何将 ASCII 码转换为二进制码?
How do exactly computers convert ASCII to Binary?
我看过,当你按下键盘上的一个键时,OS会把它翻译成对应的ASCII码,然后计算机会把ACII码转换成二进制码。但是,计算机的哪一部分将 ASCII 转换为二进制?这个问题可能比较笨,因为我才刚开始学CS
请耐心等待,我已经有一段时间没有处理过这种事情了...
当你按下键盘上的一个键时,一个(非常低的)电压信号被升高并被主板上的 I/O 子系统之一检测到 - 在这种情况下负责键盘端口信号的那个连接到(例如 USB、DIN、蓝牙等)。
I/O 处理程序然后将此信号发送给中断处理程序,中断处理程序又将其作为键盘中断发送给操作系统的键盘驱动程序。键盘驱动程序根据硬件的特定规则将此 high-priority 中断信号映射为二进制值。而这个按下键的二进制表示是操作系统使用 and/or 移交给另一个程序(如文字处理器、console/terminal、电子邮件等)的值。
例如,假设一个非常简单的 single-byte ASCII-based 系统(如今它变得更加复杂 - UTF-8、UTF-16、EBCDIC 等。 ):
当您按下字母 g
和 H
时,两个电压分别转换为二进制值 01100111
和 01001000
。但由于计算机不理解“字母”的概念,因此这些二进制值代表数字(对计算机来说没有问题)。在十进制中,这分别是 103
和 72
。
那么实际的字母是从哪里来的呢? ASCII 码是二进制表示、其数值(十进制、十六进制、十进制等)和相应符号之间的映射。这种情况下的符号是 g 和 H,然后计算机将其“绘制”在屏幕上。字母、数字、标点符号 - 它们都是数字的图形表示 - 如果您愿意,可以使用小图片。
我看过,当你按下键盘上的一个键时,OS会把它翻译成对应的ASCII码,然后计算机会把ACII码转换成二进制码。但是,计算机的哪一部分将 ASCII 转换为二进制?这个问题可能比较笨,因为我才刚开始学CS
请耐心等待,我已经有一段时间没有处理过这种事情了...
当你按下键盘上的一个键时,一个(非常低的)电压信号被升高并被主板上的 I/O 子系统之一检测到 - 在这种情况下负责键盘端口信号的那个连接到(例如 USB、DIN、蓝牙等)。
I/O 处理程序然后将此信号发送给中断处理程序,中断处理程序又将其作为键盘中断发送给操作系统的键盘驱动程序。键盘驱动程序根据硬件的特定规则将此 high-priority 中断信号映射为二进制值。而这个按下键的二进制表示是操作系统使用 and/or 移交给另一个程序(如文字处理器、console/terminal、电子邮件等)的值。
例如,假设一个非常简单的 single-byte ASCII-based 系统(如今它变得更加复杂 - UTF-8、UTF-16、EBCDIC 等。 ):
当您按下字母 g
和 H
时,两个电压分别转换为二进制值 01100111
和 01001000
。但由于计算机不理解“字母”的概念,因此这些二进制值代表数字(对计算机来说没有问题)。在十进制中,这分别是 103
和 72
。
那么实际的字母是从哪里来的呢? ASCII 码是二进制表示、其数值(十进制、十六进制、十进制等)和相应符号之间的映射。这种情况下的符号是 g 和 H,然后计算机将其“绘制”在屏幕上。字母、数字、标点符号 - 它们都是数字的图形表示 - 如果您愿意,可以使用小图片。