左上方的ascii值是多少?

Laz*_*Laz 40 hardware ascii

箭头键的ASCII值是多少?(上下左右)

Chr*_*cha 56

简而言之:

向左箭头:37
向上箭头:38
向右箭头:39
向下箭头:40

  • 咦?在ASCII中,字符37-40映射到%&'和( (22认同)
  • 这些是在浏览器中的event.keyCode中显示的正确值,但不是ASCII代码.虽然我怀疑这些是OP正在寻找的价值.请参阅:https://developer.mozilla.org/en-US/docs/DOM/KeyboardEvent (13认同)
  • 如果这些对于浏览器中的javasctip是正确的,则应将该信息添加到答案中.显而易见的是垃圾只考虑问题给出的上下文和这里提供的非上下文. (3认同)

t0m*_*13b 24

这些密钥没有真正的ascii代码,因此您需要根据helppc的信息检查这些密钥的扫描代码,称为Make和Break密钥代码.代码听起来'ascii'的原因是因为密钥代码由旧的BIOS中断0x16和键盘中断0x9处理.

                 Normal Mode            Num lock on
                 Make    Break        Make          Break
Down arrow       E0 50   E0 D0     E0 2A E0 50   E0 D0 E0 AA
Left arrow       E0 4B   E0 CB     E0 2A E0 4B   E0 CB E0 AA
Right arrow      E0 4D   E0 CD     E0 2A E0 4D   E0 CD E0 AA
Up arrow         E0 48   E0 C8     E0 2A E0 48   E0 C8 E0 AA

因此,通过查看生成密钥代码的E0之后的代码,例如分别为0x50,0x4B,0x4D,0x48,这是因为查看密钥代码并将其视为"ascii"而产生混淆...答案是不要随着平台的变化,操作系统会有所不同,在Windows下它会有与这些键对应的虚拟键码,不一定与BIOS代码VK_UP,VK_DOWN,VK_LEFT,VK_RIGHT相同......这可以在你的C++中找到头文件windows.h,我记得在SDK的include文件夹中.

不要依赖密钥代码来获得与此处显示的相同的"相同的ascii"代码,因为操作系统将在操作系统认为合适的情况下重新编程整个BIOS代码,这自然是因为BIOS代码是16位,并且操作系统(现在是32位保护模式),当然这些来自BIOS的代码将不再有效.

因此,原始键盘中断0x9和BIOS中断0x16将在BIOS加载后从内存中擦除,当受保护模式OS开始加载时,它将覆盖该区域的内存并将其替换为自己的32位保护模式处理程序来处理使用那些键盘扫描码.

以下是使用Borland C v3进行DOS编程的代码示例:

#include <bios.h>
int getKey(void){
    int key, lo, hi;
    key = bioskey(0);
    lo = key & 0x00FF;
    hi = (key & 0xFF00) >> 8;
    return (lo == 0) ? hi + 256 : lo;
}

这个例程实际上,返回代码为up,down分别为328和336(我实际上没有左右代码,这是我的旧书库!)实际的scancode在lo变量中找到.除了AZ,0-9之外的其他键通过bioskey例程扫描代码为0 ....添加原因256,因为变量的lo代码为0,hi变量将具有扫描代码并在其中添加256为了不与'ascii'代码混淆......


Ice*_*ind 11

这个问题的答案真的取决于您使用的操作系统和编程语言.本身没有"ASCII码".操作系统检测到您按箭头键并触发程序可以捕获的事件.例如,在现代Windows机器上,您将获得WM_KEYUP或WM_KEYDOWN事件.它通常传递一个16位值来确定推送了哪个键.

  • 我喜欢你的回答,以及tommieb75的答案,但你们都有点夸张 - "没有ASCII代码本身"和"没有真正的ascii代码".扁平化:箭头键**不具有ASCII码,因为ASCII是*字符*编码,而不是键盘编码.当你回答他们所问的问题时,纠正一个人对某个问题的不准确理解通常会更有帮助. (7认同)

Chr*_* Jr 8

ascii的值为:

  1. 向上键 - 224 72

  2. 向下键 - 224 80

  3. 左键 - 224 75

  4. 右键 - 224 77

每个都有ascii值的两个整数值,因为它们是特殊键,而不是$的代码,只是36.这些2字节的特殊键通常将第一个数字设置为224或0.这可以是在Windows中使用F#或删除键找到.

编辑:这可能实际上是unicode回顾,但他们确实有效.


Ste*_*ven 6

如果您使用OpenGL进行编程,请使用GLUT.以下页面应该有所帮助:http://www.lighthouse3d.com/opengl/glut/index.php?5

GLUT_KEY_LEFT   Left function key
GLUT_KEY_RIGHT  Right function key
GLUT_KEY_UP     Up function key
GLUT_KEY_DOWN   Down function key
Run Code Online (Sandbox Code Playgroud)

 

void processSpecialKeys(int key, int x, int y) {

switch(key) {
    case GLUT_KEY_F1 : 
            red = 1.0; 
            green = 0.0; 
            blue = 0.0; break;
    case GLUT_KEY_F2 : 
            red = 0.0; 
            green = 1.0; 
            blue = 0.0; break;
    case GLUT_KEY_F3 : 
            red = 0.0; 
            green = 0.0; 
            blue = 1.0; break;
}
}
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以通过编译和运行这个小型C++程序来检查它.

#include <iostream>
#include <conio.h>
#include <cstdlib>

int show;
int main()
{    
while(true)
    {
    int show = getch();
    std::cout << show;
    }
getch(); // Just to keep the console open after program execution  
}
Run Code Online (Sandbox Code Playgroud)