完整ASCII字符表

ASCII(美国信息交换标准编码)表

字符

ASCII代码

字符

ASCII代码

字符

ASCII代码

二进制

十进制

十六进制

二进制

十进制

十六进制

二进制

十进制

十六进制

回车

1101

13

0D

?

111111

63

3F

a

1100001

97

61

ESC

11011

27

1B

@

1000000

64

40

b

1100010

98

62

空格

100000

32

20

A

1000001

65

41

c

1100011

99

63

100001

33

21

B

1000010

66

42

d

1100100

100

64

"

100010

34

22

C

1000011

67

43

e

1100101

101

65

#

100011

35

23

D

1000100

68

44

f

1100110

102

66

$

100100

36

24

E

1000101

69

45

g

1100111

103

67

%

100101

37

25

F

1000110

70

46

h

1101000

104

68

&

100110

38

26

G

1000111

71

47

i

1101001

105

69

,

100111

39

27

H

1001000

72

48

j

1101010

106

6A

(

101000

40

28

I

1001001

73

49

k

1101011

107

6B

)

101001

41

29

J

1001010

74

4A

l

1101100

108

6C

*

101010

42

2A

K

1001011

75

4B

m

1101101

109

6D

+

101011

43

2B

L

1001100

76

4C

n

1101110

110

6E

,

101100

44

2C

M

1001101

77

4D

o

1101111

111

6F

-

101101

45

2D

N

1001110

78

4E

p

1110000

112

70

.

101110

46

2E

O

1001111

79

4F

q

1110001

113

71

/

101111

47

2F

P

1010000

80

50

r

1110010

114

72

0

110000

48

30

Q

1010001

81

51

s

1110011

115

73

1

110001

49

31

R

1010010

82

52

t

1110100

116

74

2

110010

50

32

S

1010011

83

53

u

1110101

117

75

3

110011

51

33

T

1010100

84

54

v

1110110

118

76

4

110100

52

34

U

1010101

85

55

w

1110111

119

77

5

110101

53

35

V

1010110

86

56

x

1111000

120

78

6

110110

54

36

W

1010111

87

57

y

1111001

121

79

7

110111

55

37

X

1011000

88

58

z

1111010

122

7A

8

111000

56

38

Y

1011001

89

59

 

 

 

 

9

111001

57

39

Z

1011010

90

5A

{

1111011

123

7B

:

111010

58

3A

[

1011011

91

5B

|

1111100

124

7C

;

111011

59

3B

\

1011100

92

5C

}

1111101

125

7D

111100

60

3C

]

1011101

93

5D

~

1111110

126

7E

=

111101

61

3D

^

1011110

94

5E

 

 

 

 

111110

62

3E

-

1011111

95

5F

 

 

 

 

 

控制字符: 

编码

十六进制

缩写

字符名称

中文意义

编码

十六进制

缩写

字符名称

中文意义

0

0

NUL

Null

1

1

SOH

Start of Heading

报头开始

2

2

STX

Start of Text

正文开始

3

3

ETX

Start of Text

正文开始

4

4

EOT

End of Transmission

传输结束

5

5

ENQ

Enquiry

查询

6

6

ACK

Acknowledge

确认

7

7

BEL

Bell

振铃

8

8

BS

Backspace

退格

9

9

HT

Horizontal Tab

水平制表

10

0A

LF

Line Feed

换行

11

0B

VT

Vertical Tab

垂直制表

12

0C

FF

Form Feed

换页

13

0D

CR

Carriage Return

回车

14

0E

SO

Shift Out

移出

15

0F

SI

Shift In

移入

16

10

DLE

Data Link Escape

数据链路转义

17

11

DC1

Device Control 1

设备控制1

18

12

DC2

Device Control 2

设备控制2

19

13

DC3

Device Control 3

设备控制3

20

14

DC4

Device Control 4

设备控制4

21

15

NAK

Negative Acknowledge

否认

22

16

SYN

Synchronous Idle

同步空闲

23

17

ETB

End of Transmission Block

传输块结束

24

18

CAN

Cancel

取消

25

19

EM

End of Medium

介质结束

26

1A

SUB

Substitute

替换

27

1B

ESC

Escape

转义

28

1C

FS

File Separator

文件分隔符

29

1D

GS

Group Separator

分组符

30

1E

RS

Record Separator

记录分隔符

31

1F

US

Unit Separator

单元分隔符

32

20

SP

Space

空格

127

7F

DEL

Delete

删除

 

 

ASCII字符表:

 扩展ASCII字符表:

(注:要在console窗口打印查看扩展ASCII字符表,请先设置代码页为437.(SetConsoleOutputCP(437)))

计算机发明后,为了在计算机中表示字符,人们制定了一种编码,叫ASCII码。ASCII码由一个字节中的7(bit)表示,范围是0x00 - 0x7F 128个字符。他们以为这128个数字就足够表示abcd....ABCD....1234 这些字符了。
  咳......说英语的人就是!后来他们突然发现,如果需要按照表格方式打印这些字符的时候,缺少了制表符。于是又扩展了ASCII的定义,使用一个字节的全部8(bit)来表示字符了,这就叫扩展ASCII码。范围是0x00 - 0xFF 256个字符。
  咳......说中文的人就是聪明!中国人利用连续2个扩展ASCII码的扩展区域(0xA0以后)来表示一个汉字,该方法的标准叫GB-2312。后来,日文、韩文、阿拉伯文、台湾繁体(BIG-5)......都使用类似的方法扩展了本地字符集的定义,现在统一称为 MBCS 字符集(多字节字符集)。这个方法是有缺陷的,因为各个国家地区定义的字符集有交集,因此使用GB-2312的软件,就不能在BIG-5的环境下运行(显示乱码),反之亦然。
  咳......说英语的人终于变聪明一些了。为了把全世界人民所有的所有的文字符号都统一进行编码,于是制定了UNICODE标准字符集。UNICODE 使用2个字节表示一个字符(unsigned shor intWCHAR_wchar_tOLECHAR)。这下终于好啦,全世界任何一个地区的软件,可以不用修改地就能在另一个地区运行了。虽然我用 IE 浏览日本网站,显示出我不认识的日文文字,但至少不会是乱码了。UNICODE 的范围是 0x0000 - 0xFFFF 6万多个字符,其中光汉字就占用了4万多个。嘿嘿,中国人赚大发了:0)
  在程序中使用各种字符集的方法:

      const char * p = "Hello"; // 使用 ASCII 字符集

      const char * p = "你好"; // 使用 MBCS 字符集,由于 MBCS 完全兼容 ASCII,多数情况下,我们并不严格区分他们

      LPCSTR p = "Hello,你好"; // 意义同上

     

      const WCHAR * p = L"Hello,你好"; // 使用 UNICODE 字符集

      LPCOLESTR p = L"Hello,你好"; // 意义同上

     

      // 如果预定义了_UNICODE,则表示使用UNICODE字符集;如果定义了_MBCS,则表示使用 MBCS

      const TCHAR * p = _T("Hello,你好");

      LPCTSTR p = _T("Hello,你好"); // 意义同上

在上面的例子中,T是非常有意思的一个符号(TCHARLPCTSTRLPTSTR_T()_TEXT()...),它表示使用一种中间类型,既不明确表示使用 MBCS,也不明确表示使用 UNICODE。那到底使用哪种字符集那?嘿嘿......编译的时候决定吧。设置条件编译的方式是:VC6中,"Project\Settings...\C/C++卡片 Preprocessor definitions" 中添加或修改 _MBCS_UNICODEVC.NET中,"项目\属性\配置属性\常规\字符集"然后用组合窗进行选择。使用 T 类型,是非常好的习惯,严重推荐!

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值