หัวข้อการพูดคุย ASCII and IBM PC Scan code

ยกคำพูดมา

รหัส Ascii เป็นอะไรที่สำคัญต่อการเขียนโปรแกรมที่ต้องรับข้อมูลจากคีย์บอร์ด เรามาดูกันดีกว่าว่ามันมีตัวอะไรมั่ง

ASCII Chart

    0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F 0  NUL SOH STX ETX EOT ENQ ACK BEL BS  HT  LF  VT  FF  CR  SO  SI 1  DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM  SUB ESC FS  GS  RS  US 2   SP  !   "   #   $   %   &   '   (   )   *   +   ,   -   .   / 3   0   1   2   3   4   5   6   7   8   9   :   ;   <   =   >   ? 4   @   A   B   C   D   E   F   G   H   I   J   K   L   M   N   O 5   P   Q   R   S   T   U   V   W   X   Y   Z   [   \   ]   ^   _ 6   `   a   b   c   d   e   f   g   h   i   j   k   l   m   n   o 7   p   q   r   s   t   u   v   w   x   y   z   {   |   }   ~ DEL 

 
หวัง
ว่าคงดูตารางข้างบนออกน่ะ อย่างเช่น ตัว D มันก็จะได้ 44
โดยเราก็ดูเลขที่อยู่หน้าแถวตัว D
ก่อนแล้วค่อยมองเลขที่อยู่หัวคอลั่มข้างบน
แต่ที่ได้มานั้นเป็นเลขฐาน 16 เราต้องมาแปลงเป็นเลขฐาน 10 ก่อนแล้วไปเทียบกับตาราง ASCII อันนี้
 
 
วิธีแปลงจากเลขฐาน 10 เป็น ฐาน 16 ยกตัวอย่างด้วยเลข 44 ฐาน 10
44 <—- 44 มีสองหลัก แต่ละหลักคูณกับ 16^หลัก
4(16^1) 4(16^0) = หลัก 0 = 4
                          = หลัก 1 = 64
 
เสร็จแล้วนำผลที่ได้มารวมกันก็จะได้ 64 + 4 = 68
 
แล้วถ้าแปลงกลับล่ะ?
68 ฐาน 10 แปลงเป็นฐาน 16 ก็ได้
68/16 = 4.25 ผลที่ได้คือ 4 เหลือเศษ 0.25 เอา 0.25 * 16 = 4
4/16 =  0.25 ผลที่ได้คือ 0 เหลือเศษ 0.25 เอา 0.25 * 16 = 4
 
เสร็จแล้วนำคำตอบตัวที่หารครั้งสุดท้ายนำตามด้วยตัวที่หารก่อนหน้านั้นต่อท้ายก็
จะได้คำตอบเท่ากับ = 44
 
IBM PC Keyboard Scan Codes
 
สำหรับคีย์บางตัวบนคีย์บอร์ดแบบ IBM PC นั้นต้องใช้รหัส ASCII ถึงสองตัวด้วยกันอย่างเช่น
 Char.  Decimal Pair     Hex Pair    Char.  Decimal Pair    Hex Pair
ALT-A     (00,30)    (0x00,0x1e)    ALT-B    (00,48)    (0x00,0x30)
ALT-C     (00,46)    (0x00,0x2e)    ALT-D    (00,32)    (0x00,0x20)
ALT-E     (00,18)    (0x00,0x12)    ALT-F    (00,33)    (0x00,0x21)
ALT-G     (00,34)    (0x00,0x22)    ALT-H    (00,35)    (0x00,0x23)
ALT-I     (00,23)    (0x00,0x17)    ALT-J    (00,36)    (0x00,0x24)
ALT-K     (00,37)    (0x00,0x25)    ALT-L    (00,38)    (0x00,0x26)
ALT-M     (00,50)    (0x00,0x32)    ALT-N    (00,49)    (0x00,0x31)
ALT-O     (00,24)    (0x00,0x18)    ALT-P    (00,25)    (0x00,0x19)
ALT-Q     (00,16)    (0x00,0x10)    ALT-R    (00,19)    (0x00,0x13)
ALT-S     (00,31)    (0x00,0x1a)    ALT-T    (00,20)    (0x00,0x14)
ALT-U     (00,22)    (0x00,0x16)    ALT-V    (00,47)    (0x00,0x2f)
ALT-W     (00,17)    (0x00,0x11)    ALT-X    (00,45)    (0x00,0x2d)
ALT-Y     (00,21)    (0x00,0x15)    ALT-Z    (00,44)    (0x00,0x2c)
PgUp      (00,73)    (0x00,0x49)    PgDn     (00,81)    (0x00,0x51)
Home      (00,71)    (0x00,0x47)    End      (00,79)    (0x00,0x4f)
UpArrw    (00,72)    (0x00,0x48)    DnArrw   (00,80)    (0x00,0x50)
LftArrw   (00,75)    (0x00,0x4b)    RtArrw   (00,77)    (0x00,0x4d)
F1        (00,59)    (0x00,0x3b)    F2       (00,60)    (0x00,0x3c)
F3        (00,61)    (0x00,0x3d)    F4       (00,62)    (0x00,0x3e)
F5        (00,63)    (0x00,0x3f)    F6       (00,64)    (0x00,0x40)
F7        (00,65)    (0x00,0x41)    F8       (00,66)    (0x00,0x42)
F9        (00,67)    (0x00,0x43)    F10      (00,68)    (0x00,0x44)
F11       (00,133)   (0x00,0x85)    F12      (00,134)   (0x00,0x86)
ALT-F1    (00,104)   (0x00,0x68)    ALT-F2   (00,105)   (0x00,0x69)
ALT-F3    (00,106)   (0x00,0x6a)    ALT-F4   (00,107)   (0x00,0x6b)
ALT-F5    (00,108)   (0x00,0x6c)    ALT-F6   (00,109)   (0x00,0x6d)
ALT-F7    (00,110)   (0x00,0x6e)    ALT-F8   (00,111)   (0x00,0x6f)
ALT-F9    (00,112)   (0x00,0x70)    ALT-F10  (00,113)   (0x00,0x71)
ALT-F11   (00,139)   (0x00,0x8b)    ALT-F12  (00,140)   (0x00,0x8c)
 
อ่านเนื้อหาเพิ่มเติมได้ที่ http://jimprice.com/jim-asc.shtml#keycodes มี ASCII ทั้งหมดเลย

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s