文本编辑器如何识别用户是想输入数字还是与之关联的 ascii 值?
How do text-editors recognize if the user wanted to type a number or the ascii value associated with it?
据我目前的理解:-
- 系统将所有二进制值视为相等,软件(或应用程序)的任务是将二进制值解释为文本或图像等. 基于应用期望数据所在的 上下文。
- 当用户按下一个键时,系统会触发一个事件,任何运行 应用程序都会处理该事件 并获取按下的键的值。
现在,以用户按下 tab 键为例。
水平制表符的二进制值(如果我没记错的话)-
00001001
当这个二进制值转换成十进制时,我们得到 “9” 作为值。
现在我的疑问[s]是:-
- 文本编辑器如何识别值“9”还是水平制表符作为最终值?也就是说,
- 软件如何知道十进制值是否需要转换成其等效的 ASCII 字符?
- 是否按下了 tab 键或数字 9 键?
- 系统如何、以何种形式或以何种细节触发按键事件?
如果你能帮助我,我会很高兴(当然是简单的意思),如果我有什么错误,请指出。
谢谢!
好吧,我认为你的使命是 2 个非常重要的细节。
他们在这里:-
- 所有数字(0 到 9)也存在不同的
ASCII codes
,并且数字“9”和十进制值“9”有不同的键码,作为@ggorlen指出,是tab键。
- 大多数应用程序总是采用
ASCII
(或任何其他类型的字符编码)等效值,而不是按键二进制值的十进制等效值。
据我目前的理解:-
- 系统将所有二进制值视为相等,软件(或应用程序)的任务是将二进制值解释为文本或图像等. 基于应用期望数据所在的 上下文。
- 当用户按下一个键时,系统会触发一个事件,任何运行 应用程序都会处理该事件 并获取按下的键的值。
现在,以用户按下 tab 键为例。
水平制表符的二进制值(如果我没记错的话)-
00001001
当这个二进制值转换成十进制时,我们得到 “9” 作为值。
现在我的疑问[s]是:-
- 文本编辑器如何识别值“9”还是水平制表符作为最终值?也就是说,
- 软件如何知道十进制值是否需要转换成其等效的 ASCII 字符?
- 是否按下了 tab 键或数字 9 键?
- 系统如何、以何种形式或以何种细节触发按键事件?
如果你能帮助我,我会很高兴(当然是简单的意思),如果我有什么错误,请指出。
谢谢!
好吧,我认为你的使命是 2 个非常重要的细节。
他们在这里:-
- 所有数字(0 到 9)也存在不同的
ASCII codes
,并且数字“9”和十进制值“9”有不同的键码,作为@ggorlen指出,是tab键。 - 大多数应用程序总是采用
ASCII
(或任何其他类型的字符编码)等效值,而不是按键二进制值的十进制等效值。