ASCII码对应表
OCT(八進(jìn)制)
最全ASCII碼對(duì)應(yīng)表—與鍵盤按鍵對(duì)應(yīng)值
(二進(jìn))Bin????(十進(jìn))Dec???(十六進(jìn))Hex???????? 縮寫/字符?????????????????????????????????????? 解釋
0000 0000???? 0?????????? 00???????????? NUL (null)?????????????????????????????????????? 空字符????
0000 0001???? 1?????????? 01???????????? SOH (start of handing)?????????????????? 標(biāo)題開始??
0000 0010???? 2?????????? 02???????????? STX (start of text)?????????????????????????? 正文開始??
0000 0011???? 3?????????? 03???????????? ETX (end of text)?????????????????????????? 正文結(jié)束
0000 0100???? 4?????????? 04???????????? EOT (end of transmission)???????????? 傳輸結(jié)束??
0000 0101???? 5?????????? 05???????????? ENQ (enquiry)?????????????????????????????? 請(qǐng)求??
0000 0110???? 6?????????? 06???????????? ACK (acknowledge)?????????????????????? 收到通知??
0000 0111???? 7?????????? 07???????????? BEL (bell)?????????????????????????????????????? 響鈴
0000 1000???? 8?????????? 08???????????? BS (backspace)???????????????????????????? 退格??
0000 1001???? 9?????????? 09???????????? HT (horizontal tab)???????????????????????? 水平制表符??
0000 1010???? 10???????? 0A???????????? LF (NL line feed, new line)???????????? 換行鍵??
0000 1011???? 11???????? 0B???????????? VT (vertical tab)???????????????????????????? 垂直制表符??
0000 1100???? 12???????? 0C???????????? FF (NP form feed, new page)???????? 換頁鍵??
0000 1101???? 13???????? 0D???????????? CR (carriage return)?????????????????????? 回車鍵
0000 1110???? 14???????? 0E???????????? SO (shift out)???????????????????????????????? 不用切換??
0000 1111???? 15???????? 0F???????????? SI (shift in)???????????????????????????????????? 啟用切換??
0001 0000???? 16???????? 10???????????? DLE (data link escape)?????????????????? 數(shù)據(jù)鏈路轉(zhuǎn)義??
0001 0001???? 17???????? 11???????????? DC1 (device control 1)?????????????????? 設(shè)備控制1??
0001 0010???? 18???????? 12???????????? DC2 (device control 2)?????????????????? 設(shè)備控制2??
0001 0011???? 19???????? 13???????????? DC3 (device control 3)?????????????????? 設(shè)備控制3??
0001 0100???? 20???????? 14???????????? DC4 (device control 4)?????????????????? 設(shè)備控制4??
0001 0101???? 21???????? 15???????????? NAK (negative acknowledge)???????? 拒絕接收??
0001 0110???? 22???????? 16???????????? SYN (synchronous idle)???????????????? 同步空閑??
0001 0111???? 23???????? 17???????????? ETB (end of trans. block)?????????????? 傳輸塊結(jié)束??
0001 1000???? 24???????? 18???????????? CAN (cancel)???????????????????????????????? 取消
0001 1001???? 25???????? 19???????????? EM (end of medium)?????????????????????? 介質(zhì)中斷??
0001 1010???? 26???????? 1A???????????? SUB (substitute)???????????????????????????? 替補(bǔ)??
0001 1011???? 27???????? 1B???????????? ESC (escape)???????????????????????????????? 溢出??
0001 1100???? 28???????? 1C???????????? FS (file separator)???????????????????????? 文件分割符??
0001 1101???? 29???????? 1D???????????? GS (group separator)???????????????????? 分組符??
0001 1110???? 30???????? 1E???????????? RS (record separator)?????????????????? 記錄分離符??
0001 1111???? 31???????? 1F???????????? US (unit separator)???????????????????????? 單元分隔符??
0010 0000???? 32???????? 20???????????? 空格
0010 0001???? 33???????? 21???????????? !
0010 0010???? 34???????? 22???????????? "
0010 0011???? 35???????? 23???????????? #
0010 0100???? 36???????? 24???????????? $
0010 0101???? 37???????? 25???????????? %
0010 0110???? 38???????? 26???????????? &
0010 0111???? 39???????? 27???????????? '
0010 1000???? 40???????? 28???????????? (
0010 1001???? 41???????? 29???????????? )
0010 1010???? 42???????? 2A???????????? *
0010 1011???? 43???????? 2B???????????? +
0010 1100???? 44???????? 2C???????????? ,
0010 1101???? 45???????? 2D???????????? -
0010 1110???? 46???????? 2E???????????? .
0010 1111???? 47???????? 2F???????????? /
0011 0000???? 48???????? 30???????????? 0
0011 0001???? 49???????? 31???????????? 1
0011 0010???? 50???????? 32???????????? 2
0011 0011???? 51???????? 33???????????? 3
0011 0100???? 52???????? 34???????????? 4
0011 0101???? 53???????? 35???????????? 5
0011 0110???? 54???????? 36???????????? 6
0011 0111???? 55???????? 37???????????? 7
0011 1000???? 56???????? 38???????????? 8
0011 1001???? 57???????? 39???????????? 9
0011 1010???? 58???????? 3A???????????? :
0011 1011???? 59???????? 3B???????????? ;
0011 1100???? 60???????? 3C???????????? <
0011 1101???? 61???????? 3D???????????? =
0011 1110???? 62???????? 3E???????????? >
0011 1111???? 63???????? 3F???????????? ?
0100 0000???? 64???????? 40???????????? @
0100 0001???? 65???????? 41???????????? A
0100 0010???? 66???????? 42???????????? B
0100 0011???? 67???????? 43???????????? C
0100 0100???? 68???????? 44???????????? D
0100 0101???? 69???????? 45???????????? E
0100 0110???? 70???????? 46???????????? F
0100 0111???? 71???????? 47???????????? G
0100 1000???? 72???????? 48???????????? H
0100 1001???? 73???????? 49???????????? I
0100 1010???? 74???????? 4A???????????? J
0100 1011???? 75???????? 4B???????????? K
0100 1100???? 76???????? 4C???????????? L
0100 1101???? 77???????? 4D???????????? M
0100 1110???? 78???????? 4E???????????? N
0100 1111???? 79???????? 4F???????????? O
0101 0000???? 80???????? 50???????????? P
0101 0001???? 81???????? 51???????????? Q
0101 0010???? 82???????? 52???????????? R
0101 0011???? 83???????? 53???????????? S
0101 0100???? 84???????? 54???????????? T
0101 0101???? 85???????? 55???????????? U
0101 0110???? 86???????? 56???????????? V
0101 0111???? 87???????? 57???????????? W
0101 1000???? 88???????? 58???????????? X
0101 1001???? 89???????? 59???????????? Y
0101 1010???? 90???????? 5A???????????? Z
0101 1011???? 91???????? 5B???????????? [
0101 1100???? 92???????? 5C???????????? \
0101 1101???? 93???????? 5D???????????? ]
0101 1110???? 94???????? 5E???????????? ^
0101 1111???? 95???????? 5F???????????? _
0110 0000???? 96???????? 60???????????? `
0110 0001???? 97???????? 61???????????? a
0110 0010???? 98???????? 62???????????? b
0110 0011???? 99???????? 63???????????? c
0110 0100???? 100?????? 64???????????? d
0110 0101???? 101?????? 65???????????? e
0110 0110???? 102?????? 66???????????? f
0110 0111???? 103?????? 67???????????? g
0110 1000???? 104?????? 68???????????? h
0110 1001???? 105?????? 69???????????? i
0110 1010???? 106?????? 6A???????????? j
0110 1011???? 107?????? 6B???????????? k
0110 1100???? 108?????? 6C???????????? l
0110 1101???? 109?????? 6D???????????? m
0110 1110???? 110?????? 6E???????????? n
0110 1111???? 111?????? 6F???????????? o
0111 0000???? 112?????? 70???????????? p
0111 0001???? 113?????? 71???????????? q
0111 0010???? 114?????? 72???????????? r
0111 0011???? 115?????? 73???????????? s
0111 0100???? 116?????? 74???????????? t
0111 0101???? 117?????? 75???????????? u
0111 0110???? 118?????? 76???????????? v
0111 0111???? 119?????? 77???????????? w
0111 1000???? 120?????? 78???????????? x
0111 1001???? 121?????? 79???????????? y
0111 1010???? 122?????? 7A???????????? z
0111 1011???? 123?????? 7B???????????? {
0111 1100???? 124?????? 7C???????????? |
0111 1101???? 125?????? 7D???????????? }
0111 1110???? 126?????? 7E???????????? ~??
0111 1111???? 127?????? 7F???????????? DEL (delete)???????????????????????????????? 刪除??
鍵盤常用ASCII碼(十進(jìn)制表示值)
ESC鍵?????????? VK_ESCAPE (27)
回車鍵:??????? VK_RETURN (13)
TAB鍵:?????? VK_TAB (9)
Caps Lock鍵: VK_CAPITAL (20)
Shift鍵:???????? VK_SHIFT (16)
Ctrl鍵:???????? VK_CONTROL (17)
Alt鍵:????????? VK_MENU (18)
空格鍵:????? ?? VK_SPACE (/32)
退格鍵:????? ?? VK_BACK (8)
左徽標(biāo)鍵: VK_LWIN (91)
右徽標(biāo)鍵:??? VK_LWIN (92)
鼠標(biāo)右鍵快捷鍵:VK_APPS (93)
Insert鍵:???? ?? VK_INSERT (45)
Home鍵:???? ?? VK_HOME (36)
Page Up:??? ?? VK_PRIOR (33)
PageDown: VK_NEXT (34)
End鍵:????????? VK_END (35)
Delete鍵:?????? VK_DELETE (46)
方向鍵(←):??? VK_LEFT (37)
方向鍵(↑):??? VK_UP (38)
方向鍵(→):??? VK_RIGHT (39)
方向鍵(↓):??? VK_DOWN (40)
F1鍵:???????????? VK_F1 (112)
F2鍵:???????????? VK_F2 (113)
F3鍵:???????????? VK_F3 (114)
F4鍵:???????????? VK_F4 (115)
F5鍵:???????????? VK_F5 (116)
F6鍵:???????????? VK_F6 (117)
F7鍵:???????????? VK_F7 (118)
F8鍵:???????????? VK_F8 (119)
F9鍵:???????????? VK_F9 (120)
F10鍵:?????????? VK_F10 (121)
F11鍵:?????????? VK_F11 (122)
F12鍵:????????? VK_F12 (123)
Num Lock鍵: VK_NUMLOCK (144)
小鍵盤0:??????? VK_NUMPAD0 (96)
小鍵盤1:???????? VK_NUMPAD0 (97)
小鍵盤2:???????? VK_NUMPAD0 (98)
小鍵盤3:???????? VK_NUMPAD0 (99)
小鍵盤4:??????? VK_NUMPAD0 (100)
小鍵盤5:??????? VK_NUMPAD0 (101)
小鍵盤6:???????? VK_NUMPAD0 (102)
小鍵盤7:???????? VK_NUMPAD0 (103)
小鍵盤8:???????? VK_NUMPAD0 (104)
小鍵盤9:??????? VK_NUMPAD0 (105)
小鍵盤.:???????? VK_DECIMAL (110)
小鍵盤*:???????? VK_MULTIPLY (106)
小鍵盤+:???????? VK_MULTIPLY (107)
小鍵盤-:???????? VK_SUBTRACT (109)
小鍵盤/:???????? VK_DIVIDE (111)
Pause Break鍵: VK_PAUSE (19)
Scroll Lock鍵: VK_SCROLL (145)
| Bin二進(jìn) | Dec十進(jìn) | Hex十六進(jìn) | 縮寫/字符 | 解釋 |
| 00000000 | 0 | 00? | NUL(null) | 空字符? |
| 00000001 | 1 | 01 | SOH(start of handling) | 標(biāo)題開始 |
| 00000010 | 2 | 02 | STX (start of text) | 正文開始 |
| 00000011 | 3 | 03 | ETX (end of text) | 正文結(jié)束 |
| 00000100 | 4 | 04 | EOT (end of transm-ission) | 傳輸結(jié)束 |
| 00000101 | 5 | 05 | ENQ (enquiry) | 請(qǐng)求 |
| 00000110 | 6 | 06 | ACK (acknow-ledge) | 收到通知 |
| 00000111 | 7 | 07 | BEL (bell) | 響鈴 |
| 00001000 | 8 | 08 | BS (backsp-ace) | 退格 |
| 00001001 | 9? | 09 | HT (horizon-tal tab) | 水平制表符 |
| 00001010 | 10? | 0A? | LF (NL line feed, new line) | 換行鍵 |
| 00001011 | 11? | 0B? | VT (vertical tab) | 垂直制表符? |
| 00001100 | 12? | 0C? | FF (NP form feed, new page) | 換頁鍵 |
| 00001101 | 13 | 0D? | CR (carriage return)? | 回車鍵 |
| 00001110 | 14 | 0E? | SO (shift out) | 不用切換 |
| 00001111 | 15 | 0F? | SI (shift in) | 啟用切換 |
| 00010000 | 16? | 10 | DLE (data link escape)? | 數(shù)據(jù)鏈路轉(zhuǎn)義 |
| 00010001 | 17 | 11? | DC1 (device control 1)? | 設(shè)備控制1 |
| 00010010 | 18 | 12? | DC2 (device control 2) | 設(shè)備控制2 |
| 00010011 | 19? | 13 | DC3 (device control 3)? | 設(shè)備控制3 |
| 00010100 | 20 | 14? | DC4 (device control 4) | 設(shè)備控制4? |
| 00010101 | 21 | 15? | NAK (negati-ve acknowl-edge)? | 拒絕接收? |
| 00010110 | 22 | 16? | SYN (synchr-onous idle)? | 同步空閑 |
| 00010111 | 23? | 17 | ETB (end of trans. block) | 傳輸塊結(jié)束? |
| 00011000 | 24? | 18 | CAN (cancel)? | 取消? |
| 00011001 | 25? | 19 | EM (end of medium) | 介質(zhì)中斷? |
| 00011010 | 26? | 1A | SUB (substit-ute) | 替補(bǔ) |
| 00011011 | 27? | 1B | ESC (escape)? | 溢出 |
| 00011100 | 28? | 1C | FS (file separat-or)? | 文件分割符 |
| 00011101 | 29? | 1D | GS (group separat-or)? | 分組符 |
| 00011110 | 30? | 1E? | RS (record separat-or)? | 記錄分離符 |
| 00011111 | 31? | 1F | US (unit separat-or) | 單元分隔符 |
| 00100000 | 32? | 20 | ? | 空格? |
| 00100001 | 33? | 21? | ! | ? |
| 00100010 | 34 | 22? | " | ? |
| 00100011 | 35? | 23 | # | ? |
| 00100100 | 36? | 24 | $ | ? |
| 00100101 | 37? | 25 | % | ? |
| 00100110 | 38? | 26 | & | ? |
| 00100111 | 39? | 27? | ' | ? |
| 00101000 | 40? | 28 | ( | ? |
| 00101001 | 41 | 29 | ) | ? |
| 00101010 | 42? | 2A | * | ? |
| 00101011 | 43 | 2B | + | ? |
| 00101100 | 44? | 2C? | , | ? |
| 00101101 | 45? | 2D | - | ? |
| 00101110 | 46? | 2E? | . | ? |
| 00101111 | 47? | 2F | /? | ? |
| 00110000 | 48? | 30 | 0 | ? |
| 00110001 | 49? | 31 | 1? | ? |
| 00110010 | 50? | 32? | 2 | ? |
| 00110011 | 51? | 33 | 3? | ? |
| 00110100 | 52? | 34? | 4 | ? |
| 00110101 | 53? | 35 | 5? | ? |
| 00110110 | 54 | 36 | 6 | ? |
| 00110111 | 55? | 37? | 7? | ? |
| 00111000 | 56? | 38 | 8? | ? |
| 00111001 | 57? | 39? | 9 | ? |
| 00111010 | 58? | 3A | :? | ? |
| 00111011 | 59 | 3B | ; | ? |
| 00111100 | 60? | 3C | <? | ? |
| 00111101 | 61 | 3D | = | ? |
| 00111110 | 62? | 3E | >? | ? |
| 00111111 | 63? | 3F? | ? | ? |
| 01000000 | 64? | 40 | @? | ? |
| 01000001 | 65 | 41 | A | ? |
| 01000010 | 66? | 42? | B? | ? |
| 01000011 | 67 | 43 | C | ? |
| 01000100 | 68? | 44? | D? | ? |
| 01000101 | 69 | 45 | E | ? |
| 01000110 | 70 | 46? | F | ? |
| 01000111 | 71 | 47 | G | ? |
| 01001000 | 72? | 48 | H? | ? |
| 01001001 | 73 | 49 | I | ? |
| 01001010 | 74? | 4A | J? | ? |
| 01001011 | 75 | 4B | K | ? |
| 01001100 | 76? | 4C? | L? | ? |
| 01001101 | 77 | 4D | M | ? |
| 01001110 | 78? | 4E | N? | ? |
| 01001111 | 79 | 4F | O | ? |
| 01010000 | 80? | 50 | P? | ? |
| 01010001 | 81 | 51 | Q | ? |
| 01010010 | 82 | 52? | R | ? |
| 01010011 | 83 | 53 | S | ? |
| 01010100 | 84? | 54 | T? | ? |
| 01010101 | 85? | 55? | U | ? |
| 01010110 | 86? | 56 | V? | ? |
| 01010111 | 87? | 57 | W | ? |
| 01011000 | 88? | 58 | X? | ? |
| 01011001 | 89 | 59? | Y | ? |
| 01011010 | 90? | 5A | Z? | ? |
| 01011011 | 91? | 5B | [? | ? |
| 01011100 | 92 | 5C | \ | ? |
| 01011101 | 93? | 5D | ]? | ? |
| 01011110 | 94 | 5E? | ^ | ? |
| 01011111 | 95? | 5F | _ | ? |
| 01100000 | 96? | 60 | `? | ? |
| 01100001 | 97 | 61? | a | ? |
| 01100010 | 98? | 62 | b? | ? |
| 01100011 | 99? | 63 | c? | ? |
| 01100100 | 100 | 64 | d | ? |
| 01100101 | 101? | 65 | e? | ? |
| 01100110 | 102? | 66 | f | ? |
| 01100111 | 103? | 67 | g? | ? |
| 01101000 | 104? | 68? | h | ? |
| 01101001 | 105? | 69 | i? | ? |
| 01101010 | 106 | 6A | j | ? |
| 01101011 | 107? | 6B | k? | ? |
| 01101100 | 108? | 6C? | l | ? |
| 01101101 | 109? | 6D? | m | ? |
| 01101110 | 110 | 6E | n | ? |
| 01101111 | 111? | 6F | o? | ? |
| 01110000 | 112? | 70? | p | ? |
| 01110001 | 113? | 71 | q? | ? |
| 01110010 | 114? | 72? | r | ? |
| 01110011 | 115? | 73 | s? | ? |
| 01110100 | 116? | 74? | t | ? |
| 01110101 | 117? | 75? | u | ? |
| 01110110 | 118? | 76 | v | ? |
| 01110111 | 119? | 77 | w? | ? |
| 01111000 | 120? | 78 | x | ? |
| 01111001 | 121? | 79 | y? | ? |
| 01111010 | 122? | 7A? | z | ? |
| 01111011 | 123? | 7B | { | ? |
| 01111100 | 124? | 7C | | | ? |
| 01111101 | 125? | 7D | } | ? |
| 01111110 | 126? | 7E? | ~ | ? |
| 01111111 | 127? | 7F? | DEL (delete) | 刪除 |
常見ASCII碼的大小規(guī)則:0~9<A~Z<a~z
1)數(shù)字比字母要小。如 “7”<“F”;?
2)數(shù)字0比數(shù)字9要小,并按0到9順序遞增。如 “3”<“8” ;?
3)字母A比字母Z要小,并按A到Z順序遞增。如“A”<“Z” ;
4)同個(gè)字母的大寫字母比小寫字母要小32。如“A”<“a” 。
記住幾個(gè)常見字母的ASCII碼大小: “A”為65;“a”為97;“0”為 48。
另外還有128-255的ASCII字符
[編輯本段]
字符集簡史
6000年前 象形文字
3000年前 字母表
1838年到1854年 Samuel F. B. Morse發(fā)明了電報(bào),字母表中的每個(gè)字符對(duì)應(yīng)于一系列短的和長的脈沖
1821年到1824年 Louis Braille發(fā)明盲文,6位代碼,它把字符、常用字母組合、常用單字和標(biāo)點(diǎn)進(jìn)行編碼。
一個(gè)特殊的escape代碼表示后續(xù)的字符代碼應(yīng)解釋為大寫。一個(gè)特殊的shift代碼允許后續(xù)代碼被解釋為數(shù)字。
1931年 CCITT標(biāo)準(zhǔn)化Telex代碼,包括Baudot #2的代碼,都是包括字符和數(shù)字的5位代碼。
1890年 早期計(jì)算機(jī)的字符碼是從Hollerith卡片,6位字符碼系統(tǒng)BCDIC(Binary-Coded Decimal Interchange Code:二進(jìn)制編碼十進(jìn)制交換編碼)
60年代 擴(kuò)展為8位EBCDIC,IBM大型主機(jī)的標(biāo)準(zhǔn)
1967年 美國信息交換標(biāo)準(zhǔn)碼(ASCII:American Standard Code for Information Interchange)
在字符長度是6位、7位還是8位的問題上產(chǎn)生了很大的爭議。從可靠性的觀點(diǎn)來看不應(yīng)使用替換字符,
因此ASCII不能是6位編碼,但由于費(fèi)用的原因也排除了8位版本的方案(當(dāng)時(shí)每位的儲(chǔ)存空間成本仍很昂貴)。
這樣,最終的字符碼就有26個(gè)小寫字母、26個(gè)大寫字母、10個(gè)數(shù)字、32個(gè)符號(hào)、33個(gè)句柄和一個(gè)空格,總共128個(gè)字符碼。
ASCII現(xiàn)在記錄在ANSI X3.4-1986字符集-用于信息交換的7位美國國家標(biāo)準(zhǔn)碼(7-Bit ASCII:7-Bit American National?
Standard Code for Information Interchange),由美國國家標(biāo)準(zhǔn)協(xié)會(huì)(American National Standards Institute)發(fā)布。
圖2-1中所示的ASCII字符碼與ANSI文件中的格式相似。?
[編輯本段]
ASCII國際問題
ASCII是美國標(biāo)準(zhǔn),所以它不能良好滿足其它講英語國家的需要。例如英國的英鎊符號(hào)(£)在哪里?
拉丁語字母表重音符號(hào)
使用斯拉夫字母表的希臘語、希伯來語、阿拉伯語和俄語。
漢字系統(tǒng)的中國象形漢字,日本和朝鮮。
1967年,國際標(biāo)準(zhǔn)化組織(ISO:International Standards Organization)推薦一個(gè)ASCII的變種,
代碼0x40、0x5B、0x5C、0x5D、0x7B、0x7C和0x7D“為國家使用保留”,而代碼0x5E、0x60和0x7E標(biāo)為
“當(dāng)國內(nèi)要求的特殊字符需要8、9或10個(gè)空間位置時(shí),可用于其它圖形符號(hào)”。這顯然不是一個(gè)最佳的國際解決方案,
因?yàn)檫@并不能保證一致性。但這卻顯示了人們?nèi)绾蜗氡M辦法為不同的語言來編碼的。?
[編輯本段]
擴(kuò)展ASCII
1981年 IBM PC ROM256個(gè)字符的字符集,即IBM擴(kuò)展字符集
1985年11 Windows字符集被稱作“ANSI字符集”,遵循了ANSI草案和ISO標(biāo)準(zhǔn)(ANSI/ISO 8859-1-1987,簡“Latin 1”。
ANSI字符集的最初版本:
1987年4月代碼頁437,字符的映像代碼,出現(xiàn)在MS-DOS 3.3?
[編輯本段]
雙字節(jié)字符集
雙字節(jié)字符集(DBCS:double-byte character set),解決中國、日本和韓國的象形文字符和ASCII的某種兼容性。
DBCS從256代碼開始,就像ASCII一樣。與任何行為良好的代碼頁一樣,最初的128個(gè)代碼是ASCII。
然而,較高的128個(gè)代碼中的某些總是跟隨著第二個(gè)字節(jié)。
這兩個(gè)字節(jié)一起(稱作首字節(jié)和跟隨字節(jié))定義一個(gè)字符,通常是一個(gè)復(fù)雜的象形文字。?
[編輯本段]
鍵盤常用ASCII碼
ESC鍵 VK_ESCAPE (27)
回車鍵: VK_RETURN (13)
TAB鍵: VK_TAB (9)
Caps Lock鍵: VK_CAPITAL (20)
Shift鍵: VK_SHIFT (16)
Ctrl鍵: VK_CONTROL (17)
Alt鍵: VK_MENU (18)
空格鍵: VK_SPACE (32)
退格鍵: VK_BACK (8)
左徽標(biāo)鍵: VK_LWIN (91)
右徽標(biāo)鍵: VK_LWIN (92)
鼠標(biāo)右鍵快捷鍵:VK_APPS (93)?
Insert鍵: VK_INSERT (45)
Home鍵: VK_HOME (36)
Page Up: VK_PRIOR (33)
PageDown: VK_NEXT (34)
End鍵: VK_END (35)
Delete鍵: VK_DELETE (46)
方向鍵(←): VK_LEFT (37)
方向鍵(↑): VK_UP (38)
方向鍵(→): VK_RIGHT (39)
方向鍵(↓): VK_DOWN (40)
F1鍵: VK_F1 (112)
F2鍵: VK_F2 (113)
F3鍵: VK_F3 (114)
F4鍵: VK_F4 (115)
F5鍵: VK_F5 (116)
F6鍵: VK_F6 (117)
F7鍵: VK_F7 (118)
F8鍵: VK_F8 (119)
F9鍵: VK_F9 (120)
F10鍵: VK_F10 (121)
F11鍵: VK_F11 (122)
F12鍵: VK_F12 (123)
Num Lock鍵: VK_NUMLOCK (144)
小鍵盤0: VK_NUMPAD0 (48)
小鍵盤1: VK_NUMPAD0 (49)
小鍵盤2: VK_NUMPAD0 (50)
小鍵盤3: VK_NUMPAD0 (51)
小鍵盤4: VK_NUMPAD0 (52)
小鍵盤5: VK_NUMPAD0 (53)
小鍵盤6: VK_NUMPAD0 (54)
小鍵盤7: VK_NUMPAD0 (55)
小鍵盤8: VK_NUMPAD0 (56)
小鍵盤9: VK_NUMPAD0 (57)
小鍵盤.: VK_DECIMAL (46)
小鍵盤*: VK_MULTIPLY (42)
小鍵盤+: VK_ADD (43)
小鍵盤-: VK_SUBTRACT (45)
小鍵盤/: VK_DIVIDE (47)
Pause Break鍵: VK_PAUSE (19)
Scroll Lock鍵: VK_SCROLL (145)?
[編輯本段]
ASCII碼的算法:
A在ascii中定義為01000001,也就是十進(jìn)制65,有了這個(gè)標(biāo)準(zhǔn)后,當(dāng)我們輸入A時(shí),計(jì)算機(jī)就可以通過ascii碼知道輸入的字符的二進(jìn)制編碼是01000001。而沒有這樣的標(biāo)準(zhǔn),我們就必須自己想辦法告訴計(jì)算機(jī)我們輸入了一個(gè)A;沒有這樣的標(biāo)準(zhǔn),我們?cè)趧e的機(jī)器上就需要重新編碼以告訴計(jì)算機(jī)我們要輸入A。ascii碼指的不是十進(jìn)制,是二進(jìn)制。只是用十進(jìn)制表示習(xí)慣一點(diǎn)罷了,比如在ascii碼中,A的二進(jìn)制編碼為01000001,如果用十進(jìn)制表示是65,用十六進(jìn)制表示就是41H。?
在ascii碼表中,只包括了一些字符、數(shù)字、標(biāo)點(diǎn)符號(hào)的信息表示,這主要是因?yàn)橛?jì)算機(jī)是美國發(fā)明的,在英文下面,我們使用ascii表示就足夠了!但是在漢字輸入下面,用ascii碼就不能表示了,而漢字只是中國的通用表示,所以如果我們要在計(jì)算機(jī)中輸入漢字,就必須有一個(gè)像ascii碼的標(biāo)準(zhǔn)來表示每一個(gè)漢字,這就是中國的漢字國標(biāo)碼,它定義了漢字在計(jì)算機(jī)中的一個(gè)表示標(biāo)準(zhǔn)。通過這個(gè)標(biāo)準(zhǔn),但我們輸入漢字的時(shí)候,我們的輸入碼就轉(zhuǎn)換為區(qū)位碼,通過唯一的區(qū)位碼得到這個(gè)漢字的字形碼并顯示出來。當(dāng)然漢字的區(qū)位碼在計(jì)算機(jī)中也是用二進(jìn)制表示的!?
二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)?
二進(jìn)制數(shù)第0位的權(quán)值是2的0次方,第1位的權(quán)值是2的1次方……?
所以,設(shè)有一個(gè)二進(jìn)制數(shù):0110 0100,轉(zhuǎn)換為10進(jìn)制為:?
下面是豎式:?
0110 0100 換算成 十進(jìn)制?
第0位 0 * 2^0 = 0?
第1位 0 * 2^1 = 0?
第2位 1 * 2^2 = 4?
第3位 0 * 2^3 = 0?
第4位 0 * 2^4 = 0?
第5位 1 * 2^5 = 32?
第6位 1 * 2^6 = 64?
第7位 0 * 2^7 = 0?
---------------------------?
100?
用橫式計(jì)算為:?
0 * 2^0 + 0 * 2^1 + 1 * 2^2 +0*2^3+ 0 * 2^4 + 1 * 2^5 + 1 * 2^6 + 0 * 2^7 = 100?
0乘以多少都是0,所以我們也可以直接跳過值為0的位:?
1 * 2^2 + 1 * 2^5 + 1 * 2^6 = 100?
6.2.2 八進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)?
八進(jìn)制就是逢8進(jìn)1。?
八進(jìn)制數(shù)采用 0~7這八數(shù)來表達(dá)一個(gè)數(shù)。?
八進(jìn)制數(shù)第0位的權(quán)值為8的0次方,第1位權(quán)值為8的1次方,第2位權(quán)值為8的2次方……?
所以,設(shè)有一個(gè)八進(jìn)制數(shù):1507,轉(zhuǎn)換為十進(jìn)制為:?
用豎式表示:?
1507換算成十進(jìn)制。?
第0位 7 * 8^0 = 7?
第1位 0 * 8^1 = 0?
第2位 5 * 8^2 = 320?
第3位 1 * 8^3 = 512?
--------------------------?
839?
同樣,我們也可以用橫式直接計(jì)算:?
7 * 8^0 + 0 * 8^1 + 5 * 8^2 + 1 * 8^3 = 839?
結(jié)果是,八進(jìn)制數(shù) 1507 轉(zhuǎn)換成十進(jìn)制數(shù)為 839?
6.2.3 八進(jìn)制數(shù)的表達(dá)方法?
C,C++語言中,如何表達(dá)一個(gè)八進(jìn)制數(shù)呢?如果這個(gè)數(shù)是 876,我們可以斷定它不是八進(jìn)制數(shù),因?yàn)榘诉M(jìn)制數(shù)中不可能出7以上的阿拉伯?dāng)?shù)字。但如果這個(gè)數(shù)是123、是567,或12345670,那么它是八進(jìn)制數(shù)還是10進(jìn)制數(shù),都有可能。?
所以,C,C++規(guī)定,一個(gè)數(shù)如果要指明它采用八進(jìn)制,必須在它前面加上一個(gè)0,如:123是十進(jìn)制,但0123則表示采用八進(jìn)制。這就是八進(jìn)制數(shù)在C、C++中的表達(dá)方法。?
由于C和C++都沒有提供二進(jìn)制數(shù)的表達(dá)方法,所以,這里所學(xué)的八進(jìn)制是我們學(xué)習(xí)的,CtC++語言的數(shù)值表達(dá)的第二種進(jìn)制法。?
現(xiàn)在,對(duì)于同樣一個(gè)數(shù),比如是100,我們?cè)诖a中可以用平常的10進(jìn)制表達(dá),例如在變量初始化時(shí):?
int a = 100;?
我們也可以這樣寫:?
int a = 0144; //0144是八進(jìn)制的100;一個(gè)10進(jìn)制數(shù)如何轉(zhuǎn)成8進(jìn)制,我們后面會(huì)學(xué)到。?
千萬記住,用八進(jìn)制表達(dá)時(shí),你不能少了最前的那個(gè)0。否則計(jì)算機(jī)會(huì)通通當(dāng)成10進(jìn)制。不過,有一個(gè)地方使用八進(jìn)制數(shù)時(shí),卻不能使用加0,那就是我們前面學(xué)的用于表達(dá)字符的“轉(zhuǎn)義符”表達(dá)法。?
6.2.4 八進(jìn)制數(shù)在轉(zhuǎn)義符中的使用?
我們學(xué)過用一個(gè)轉(zhuǎn)義符'\'加上一個(gè)特殊字母來表示某個(gè)字符的方法,如:'\n'表示換行(line),而'\t'表示Tab字符,'\''則表示單引號(hào)。今天我們又學(xué)習(xí)了一種使用轉(zhuǎn)義符的方法:轉(zhuǎn)義符'\'后面接一個(gè)八進(jìn)制數(shù),用于表示ASCII碼等于該值的字符。?
比如,查一下第5章中的ASCII碼表,我們找到問號(hào)字符(?)的ASCII值是63,那么我們可以把它轉(zhuǎn)換為八進(jìn)值:77,然后用 '\77'來表示'?'。由于是八進(jìn)制,所以本應(yīng)寫成 '\077',但因?yàn)镃,C++規(guī)定不允許使用斜杠加10進(jìn)制數(shù)來表示字符,所以這里的0可以不寫。?
事實(shí)上我們很少在實(shí)際編程中非要用轉(zhuǎn)義符加八進(jìn)制數(shù)來表示一個(gè)字符,所以,6.2.4小節(jié)的內(nèi)容,大家僅僅了解就行。?
6.2.5 十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)?
2進(jìn)制,用兩個(gè)阿拉伯?dāng)?shù)字:0、1;?
8進(jìn)制,用八個(gè)阿拉伯?dāng)?shù)字:0、1、2、3、4、5、6、7;?
10進(jìn)制,用十個(gè)阿拉伯?dāng)?shù)字:0到9;?
16進(jìn)制,用十六個(gè)阿拉伯?dāng)?shù)字……等等,阿拉伯人或說是印度人,只發(fā)明了10個(gè)數(shù)字啊??
16進(jìn)制就是逢16進(jìn)1,但我們只有0~9這十個(gè)數(shù)字,所以我們用A,B,C,D,E,F這五個(gè)字母來分別表示10,11,12,13,14,15。字母不區(qū)分大小寫。?
十六進(jìn)制數(shù)的第0位的權(quán)值為16的0次方,第1位的權(quán)值為16的1次方,第2位的權(quán)值為16的2次方……?
所以,在第N(N從0開始)位上,如果是是數(shù) X (X 大于等于0,并且X小于等于 15,即:F)表示的大小為 X * 16的N次方。?
假設(shè)有一個(gè)十六進(jìn)數(shù) 2AF5, 那么如何換算成10進(jìn)制呢??
用豎式計(jì)算:?
2AF5換算成10進(jìn)制:?
第0位: 5 * 16^0 = 5?
第1位: F * 16^1 = 240?
第2位: A * 16^2 = 2560?
第3位: 2 * 16^3 = 8192?
---------------------------------?
10997?
直接計(jì)算就是:?
5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997?
(別忘了,在上面的計(jì)算中,A表示10,而F表示15)?
現(xiàn)在可以看出,所有進(jìn)制換算成10進(jìn)制,關(guān)鍵在于各自的權(quán)值不同。?
假設(shè)有人問你,十進(jìn)數(shù) 1234 為什么是 一千二百三十四?你盡可以給他這么一個(gè)算式:?
1234 = 1 * 10^3 + 2 * 10^2 + 3 * 10^1 + 4 * 10^0?
6.2.6 十六進(jìn)制數(shù)的表達(dá)方法?
如果不使用特殊的書寫形式,16進(jìn)制數(shù)也會(huì)和10進(jìn)制相混。隨便一個(gè)數(shù):9876,就看不出它是16進(jìn)制或10進(jìn)制。?
C,C++規(guī)定,16進(jìn)制數(shù)必須以 0x開頭。比如 0x1表示一個(gè)16進(jìn)制數(shù)。而1則表示一個(gè)十進(jìn)制。另外如:0xff,0xFF,0X102A,等等。其中的x也也不區(qū)分大小寫。(注意:0x中的0是數(shù)字0,而不是字母O)?
以下是一些用法示例:?
int a = 0x100F;?
int b = 0x70 + a;?
至此,我們學(xué)完了所有進(jìn)制:10進(jìn)制,8進(jìn)制,16進(jìn)制數(shù)的表達(dá)方式。最后一點(diǎn)很重要,C/C++中,10進(jìn)制數(shù)有正負(fù)之分,比如12表示正12,而-12表示負(fù)12,;但8進(jìn)制和16進(jìn)制只能用達(dá)無符號(hào)的正整數(shù),如果你在代碼中里:-078,或者寫:-0xF2,C,C++并不把它當(dāng)成一個(gè)負(fù)數(shù)。?
6.2.7 十六進(jìn)制數(shù)在轉(zhuǎn)義符中的使用?
轉(zhuǎn)義符也可以接一個(gè)16進(jìn)制數(shù)來表示一個(gè)字符。如在6.2.4小節(jié)中說的 '?' 字符,可以有以下表達(dá)方式:?
'?' //直接輸入字符?
'\77' //用八進(jìn)制,此時(shí)可以省略開頭的0?
'\0x3F' //用十六進(jìn)制?
同樣,這一小節(jié)只用于了解。除了空字符用八進(jìn)制數(shù) '\0' 表示以外,我們很少用后兩種方法表示一個(gè)字符。?
6.3 十進(jìn)制數(shù)轉(zhuǎn)換到二、八、十六進(jìn)制數(shù)?
6.3.1 10進(jìn)制數(shù)轉(zhuǎn)換為2進(jìn)制數(shù)?
給你一個(gè)十進(jìn)制,比如:6,如果將它轉(zhuǎn)換成二進(jìn)制數(shù)呢??
10進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù),這是一個(gè)連續(xù)除2的過程:?
把要轉(zhuǎn)換的數(shù),除以2,得到商和余數(shù),?
將商繼續(xù)除以2,直到商為0。最后將所有余數(shù)倒序排列,得到數(shù)就是轉(zhuǎn)換結(jié)果。?
聽起來有些糊涂?我們結(jié)合例子來說明。比如要轉(zhuǎn)換6為二進(jìn)制數(shù)。?
“把要轉(zhuǎn)換的數(shù),除以2,得到商和余數(shù)”。?
那么:?
要轉(zhuǎn)換的數(shù)是6, 6 ÷ 2,得到商是3,余數(shù)是0。 (不要告訴我你不會(huì)計(jì)算6÷3!)?
“將商繼續(xù)除以2,直到商為0……”?
現(xiàn)在商是3,還不是0,所以繼續(xù)除以2。?
那就: 3 ÷ 2, 得到商是1,余數(shù)是1。?
“將商繼續(xù)除以2,直到商為0……”?
現(xiàn)在商是1,還不是0,所以繼續(xù)除以2。?
那就: 1 ÷ 2, 得到商是0,余數(shù)是1 (拿筆紙算一下,1÷2是不是商0余1!)?
“將商繼續(xù)除以2,直到商為0……最后將所有余數(shù)倒序排列”?
好極!現(xiàn)在商已經(jīng)是0。?
我們?nèi)斡?jì)算依次得到余數(shù)分別是:0、1、1,將所有余數(shù)倒序排列,那就是:110了!?
6轉(zhuǎn)換成二進(jìn)制,結(jié)果是110。?
把上面的一段改成用表格來表示,則為:?
被除數(shù) 計(jì)算過程 商 余數(shù)?
6 6/2 3 0?
3 3/2 1 1?
1 1/2 0 1?
(在計(jì)算機(jī)中,÷用 / 來表示)?
如果是在考試時(shí),我們要畫這樣表還是有點(diǎn)費(fèi)時(shí)間,所更常見的換算過程是使用下圖的連除:?
(圖:1)?
請(qǐng)大家對(duì)照?qǐng)D,表,及文字說明,并且自已拿筆計(jì)算一遍如何將6轉(zhuǎn)換為二進(jìn)制數(shù)。?
說了半天,我們的轉(zhuǎn)換結(jié)果對(duì)嗎?二進(jìn)制數(shù)110是6嗎?你已經(jīng)學(xué)會(huì)如何將二進(jìn)制數(shù)轉(zhuǎn)換成10進(jìn)制數(shù)了,所以請(qǐng)現(xiàn)在就計(jì)算一下110換成10進(jìn)制是否就是6。?
6.3.2 10進(jìn)制數(shù)轉(zhuǎn)換為8、16進(jìn)制數(shù)?
非常開心,10進(jìn)制數(shù)轉(zhuǎn)換成8進(jìn)制的方法,和轉(zhuǎn)換為2進(jìn)制的方法類似,惟一變化:除數(shù)由2變成8。?
來看一個(gè)例子,如何將十進(jìn)制數(shù)120轉(zhuǎn)換成八進(jìn)制數(shù)。?
用表格表示:?
被除數(shù) 計(jì)算過程 商 余數(shù)?
120 120/8 15 0?
15 15/8 1 7?
1 1/8 0 1?
120轉(zhuǎn)換為8進(jìn)制,結(jié)果為:170。?
非常非常開心,10進(jìn)制數(shù)轉(zhuǎn)換成16進(jìn)制的方法,和轉(zhuǎn)換為2進(jìn)制的方法類似,惟一變化:除數(shù)由2變成16。?
同樣是120,轉(zhuǎn)換成16進(jìn)制則為:?
被除數(shù) 計(jì)算過程 商 余數(shù)?
120 120/16 7 8?
7 7/16 0 7?
120轉(zhuǎn)換為16進(jìn)制,結(jié)果為:78。?
請(qǐng)拿筆紙,采用(圖:1)的形式,演算上面兩個(gè)表的過程。?
6.4 二、十六進(jìn)制數(shù)互相轉(zhuǎn)換?
二進(jìn)制和十六進(jìn)制的互相轉(zhuǎn)換比較重要。不過這二者的轉(zhuǎn)換卻不用計(jì)算,每個(gè)C,C++程序員都能做到看見二進(jìn)制數(shù),直接就能轉(zhuǎn)換為十六進(jìn)制數(shù),反之亦然。?
我們也一樣,只要學(xué)完這一小節(jié),就能做到。?
首先我們來看一個(gè)二進(jìn)制數(shù):1111,它是多少呢??
你可能還要這樣計(jì)算:1 * 20 + 1 * 21 + 1 * 22 + 1 * 23 = 1 * 1 + 1 * 2 + 1 * 4 + 1 * 8 = 15。?
然而,由于1111才4位,所以我們必須直接記住它每一位的權(quán)值,并且是從高位往低位記,:8、4、2、1。即,最高位的權(quán)值為23 = 8,然后依次是 22 = 4,21=2, 20 = 1。?
記住8421,對(duì)于任意一個(gè)4位的二進(jìn)制數(shù),我們都可以很快算出它對(duì)應(yīng)的10進(jìn)制值。?
下面列出四位二進(jìn)制數(shù) xxxx 所有可能的值(中間略過部分)?
僅4位的2進(jìn)制數(shù) 快速計(jì)算方法 十進(jìn)制值 十六進(jìn)值?
1111 = 8 + 4 + 2 + 1 = 15 F?
1110 = 8 + 4 + 2 + 0 = 14 E?
1101 = 8 + 4 + 0 + 1 = 13 D?
1100 = 8 + 4 + 0 + 0 = 12 C?
1011 = 8 + 4 + 0 + 1 = 11 B?
1010 = 8 + 0 + 2 + 0 = 10 A?
1001 = 8 + 0 + 0 + 1 = 10 9?
....?
0001 = 0 + 0 + 0 + 1 = 1 1?
0000 = 0 + 0 + 0 + 0 = 0 0?
二進(jìn)制數(shù)要轉(zhuǎn)換為十六進(jìn)制,就是以4位一段,分別轉(zhuǎn)換為十六進(jìn)制。?
如(上行為二制數(shù),下面為對(duì)應(yīng)的十六進(jìn)制):?
1111 1101 , 1010 0101 , 1001 1011?
F D , A 5 , 9 B?
反過來,當(dāng)我們看到 FD時(shí),如何迅速將它轉(zhuǎn)換為二進(jìn)制數(shù)呢??
先轉(zhuǎn)換F:?
看到F,我們需知道它是15(可能你還不熟悉A~F這五個(gè)數(shù)),然后15如何用8421湊呢?應(yīng)該是8 + 4 + 2 + 1,所以四位全為1 :1111。?
接著轉(zhuǎn)換 D:?
看到D,知道它是13,13如何用8421湊呢?應(yīng)該是:8 + 4 + 1,即:1101。?
所以,FD轉(zhuǎn)換為二進(jìn)制數(shù),為: 1111 1101?
由于十六進(jìn)制轉(zhuǎn)換成二進(jìn)制相當(dāng)直接,所以,我們需要將一個(gè)十進(jìn)制數(shù)轉(zhuǎn)換成2進(jìn)制數(shù)時(shí),也可以先轉(zhuǎn)換成16進(jìn)制,然后再轉(zhuǎn)換成2進(jìn)制。?
比如,十進(jìn)制數(shù) 1234轉(zhuǎn)換成二制數(shù),如果要一直除以2,直接得到2進(jìn)制數(shù),需要計(jì)算較多次數(shù)。所以我們可以先除以16,得到16進(jìn)制數(shù):?
被除數(shù) 計(jì)算過程 商 余數(shù)?
1234 1234/16 77 2?
77 77/16 4 13 (D)?
4 4/16 0 4?
結(jié)果16進(jìn)制為: 0x4D2?
然后我們可直接寫出0x4D2的二進(jìn)制形式: 0100 1101 0010。?
其中對(duì)映關(guān)系為:?
0100 -- 4?
1101 -- D?
0010 -- 2?
同樣,如果一個(gè)二進(jìn)制數(shù)很長,我們需要將它轉(zhuǎn)換成10進(jìn)制數(shù)時(shí),除了前面學(xué)過的方法是,我們還可以先將這個(gè)二進(jìn)制轉(zhuǎn)換成16進(jìn)制,然后再轉(zhuǎn)換為10進(jìn)制。?
下面舉例一個(gè)int類型的二進(jìn)制數(shù):?
01101101 11100101 10101111 00011011?
我們按四位一組轉(zhuǎn)換為16進(jìn)制: 6D E5 AF 1B
總結(jié)
- 上一篇: PIC16F73-I/SO代理
- 下一篇: c语言编程 企业发放,求c语言编程企业员