sirve que para numeral funciona completo como codigo binario hardware ascii

hardware - que - ¿Cuáles son los valores ascii de arriba abajo izquierda derecha?



para que sirve el codigo ascii (9)

En breve:

flecha izquierda: 37
flecha arriba: 38
flecha derecha: 39
flecha abajo: 40

¿Cuáles son los valores ASCII de las teclas de flecha? (arriba abajo izquierda derecha)


Los códigos Ascii para los caracteres de flecha son los siguientes: ↑ 24 ↓ 25 → 26 ← 27


Los valores ascii de:

  1. Tecla arriba - 224 72

  2. Tecla abajo - 224 80

  3. Tecla izquierda - 224 75

  4. Tecla derecha - 224 77

Cada uno de estos tiene dos valores enteros para el valor ascii, porque son claves especiales, a diferencia del código para $, que es simplemente 36. Estas claves especiales de 2 bytes generalmente tienen el primer dígito como 224 o 0. Esto puede ser encontrado con el F # en windows, o la tecla borrar.

EDITAR: Esto realmente puede ser unicode mirando hacia atrás, pero funcionan.


No existen códigos ASCII reales para estas claves, por lo que deberá verificar los códigos de escaneo para estas claves, conocidos como códigos de clave Make y Break según la información de helppc . La razón por la que los códigos suenan ''ascii'' es porque los códigos de tecla son manejados por la antigua interrupción de BIOS 0x16 y la interrupción de teclado 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

Por lo tanto, al observar los códigos que siguen a E0 para el código de la tecla Hacer, como 0x50, 0x4B, 0x4D, 0x48 respectivamente, es allí donde surge la confusión al mirar los códigos clave y tratarlos como ''ascii'' ... la respuesta es no como la plataforma varía, el sistema operativo varía, en Windows tendría un código de tecla virtual correspondiente a esas teclas, no necesariamente lo mismo que los códigos de BIOS, VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT ... esto se encontrará en su C ++ ''s archivo de cabecera windows.h, como recuerdo en la carpeta de inclusión del SDK.

No confíe en los códigos clave para tener los mismos códigos ''idénticos ascii'' que se muestran aquí, ya que el sistema operativo reprogramará todo el código BIOS en lo que el sistema operativo considere apropiado, naturalmente, porque el código BIOS es de 16 bits y el sistema operativo (actualmente es un modo protegido de 32 bits), por supuesto, esos códigos del BIOS ya no serán válidos.

Por lo tanto, la interrupción del teclado original 0x9 y la interrupción del BIOS 0x16 se eliminarán de la memoria después de que el BIOS la cargue y cuando el SO del modo protegido comience a cargarse sobrescribiría esa área de memoria y la reemplazaría con sus propios manejadores de modo protegido de 32 bits. con esos códigos de escaneo de teclado.

Aquí hay una muestra de código de los viejos tiempos de programación de DOS, usando Borland C v3:

#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; }

Esta rutina en realidad, devolvió los códigos para arriba, abajo es 328 y 336 respectivamente, (no tengo el código para izquierda y derecha en realidad, ¡esto está en mi viejo libro de cocina!) El código de exploración real se encuentra en la variable lo . Las claves distintas de AZ, 0-9, tenían un código de exploración de 0 mediante la rutina de bioskey ... se agrega el motivo 256, porque la variable lo tiene el código de 0 y la variable hi tendría el código de exploración y agrega 256 en a fin de no confundir con los códigos ''ascii'' ...


Obtener los valores del teclado en Windows muestra lo siguiente:

  • Flecha izquierda = 2424832
  • Flecha derecha = 2555904
  • Flecha arriba = 2490368
  • Flecha abajo = 2621440

Puede utilizar la función especial para activar la navegación para su propósito de programación. A continuación se muestra el código de muestra para ello.

void Specialkey(int key, int x, int y) { switch(key) { case GLUT_KEY_UP: /*Do whatever you want*/ break; case GLUT_KEY_DOWN: /*Do whatever you want*/ break; case GLUT_KEY_LEFT: /*Do whatever you want*/ break; case GLUT_KEY_RIGHT: /*Do whatever you want*/ break; } glutPostRedisplay(); }

Agregue esto a su función principal

glutSpecialFunc(Specialkey);

Espero que esto sirva para resolver el problema!


Puede verificarlo compilando y ejecutando este pequeño programa 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 }


Realmente, la respuesta a esta pregunta depende del sistema operativo y del lenguaje de programación que esté utilizando. No hay un "código ASCII" per se. El sistema operativo detecta que presionas una tecla de flecha y desencadena un evento que los programas pueden capturar. Por ejemplo, en las máquinas modernas de Windows, obtendría un evento WM_KEYUP o WM_KEYDOWN. Pasa un valor de 16 bits generalmente para determinar qué tecla se presionó.


Si está programando en OpenGL, use GLUT. La siguiente página debería ayudar: 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

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; } }