admin 管理员组

文章数量: 1086019


2024年1月4日发(作者:forbidden翻译成中文)

ASCII码表完整版

ASCII值

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

控制字符

ASCII值

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

控制字符

ASCII值

64

控制字符

ASCII值

96

控制字符

NUT

SOH

STX

ETX

EOT

ENQ

ACK

BEL

BS

HT

LF

VT

FF

CR

SO

SI

DLE

DCI

DC2

DC3

DC4

NAK

(space)

@

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

X

T

U

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

a

b

c

d

e

f

g

h

i

j

k

l

m

n

o

p

q

r

s

t

u

#

$

%

&

,

(

)

*

+

,

-

.

/

0

1

2

3

4

5

22

23

24

25

26

27

28

29

30

31

SYN

TB

CAN

EM

SUB

ESC

FS

GS

RS

US

NUL

54

55

56

57

58

59

60

61

62

63

6

7

8

9

:

;

<

=

>

?

86

87

88

89

90

91

92

93

94

95

V

W

X

Y

Z

[

/

]

^

118

119

120

121

122

123

124

125

126

127

v

w

x

y

z

{

|

}

~

DEL

VT

垂直制表

FF

走纸控制

CR

回车

SO

移位输出

SI

移位输入

DLE

空格

DC1

设备控制1

DC2

设备控制2

DC3

设备控制3

DC4

设备控制4

NAK

否定

SYN

空转同步

ETB

信息组传送结束

CAN

作废

EM

纸尽

SUB

换置

ESC

换码

FS

文字分隔符

GS

组分隔符

RS

记录分隔符

US

单元分隔符

DEL

删除

SOH

标题开始

STX

正文开始

ETX

正文结束

EOY

传输结束

ENQ

询问字符

ACK

承认

BEL

报警

BS

退一格

HT

横向列表

LF

换行

1. ASCII表

常用ASCII码表(方便查找)

键盘

ESC

SPACE

ASCII码

27

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

键盘

ASCII码

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

键盘

ASCII码

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

键盘

ASCII码

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

7

8

9

:

;

<

=

>

?

@

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

[

]

^

_

`

a

b

c

d

e

f

g

h

i

j

k

l

m

n

o

p

q

r

s

t

u

v

w

x

y

z

{

|

}

~

!

"

#

$

%

&

'

(

)

*

+

'

-

.

/

0

1

2

3

4

5

6

另外2个特殊ASCII码:回车=13,换行=10

ASCII表

ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符

0 NUT 32 (space) 64 @ 96

1 SOH 33 65 A 97 a

34 ” 66 B 98 b

35 # 67 C 99 c

36 $ 68 D 100 d

37 % 69 E 101 e

38 & 70 F 102 f

39 , 71 G 103 g

40 ( 72 H 104 h

41 ) 73 I 105 i

42 * 74 J 106 j

43 + 75 K 107 k

44 , 76 L 108 l

45 - 77 M 109 m

46 . 78 N 110 n

47 / 79 O 111 o

48 0 80 P 112 p

49 1 81 Q 113 q

50 2 82 R 114 r

51 3 83 X 115 s

52 4 84 T 116 t

53 5 85 U 117 u

54 6 86 V 118 v

55 7 87 W 119 w

56 8 88 X 120 x

57 9 89 Y 121 y

58 : 90 Z 122 z

59 ; 91 [ 123 {

60 < 92 124 |

61 = 93 ] 125 }

62 > 94 ^ 126 ~

63 ? 95 — 127 DEL

VT 垂直制表 SYN 空转同步

FF 走纸控制 ETB 信息组传送结束

CR 回车 CAN 作废

SO 移位输出 EM 纸尽

SI 移位输入 SUB 换置

DLE 空格 ESC 换码

DC1 设备控制1 FS 文字分隔符

DC2 设备控制2 GS 组分隔符

DC3 设备控制3 RS 记录分隔符

DC4 设备控制4 US 单元分隔符

NAK 否定 DEL 删除

键盘常用ASCII码

ESC键 VK_ESCAPE (27)

2 STX

3 ETX

4 EOT

5 ENQ

6 ACK

7 BEL

8 BS

9 HT

10 LF

11 VT

12 FF

13 CR

14 SO

15 SI

16 DLE

17 DCI

18 DC2

19 DC3

20 DC4

21 NAK

22 SYN

23 TB

24 CAN

25 EM

26 SUB

27 ESC

28 FS

29 GS

30 RS

31 US

NUL

SOH 标题开始

STX 正文开始

ETX 正文结束

EOY 传输结束

ENQ 询问字符

ACK 承认

BEL 报警

BS 退一格

HT 横向列表

LF 换行

回车键: VK_RETURN (13)

TAB键: VK_TAB (9)

Caps Lock键: VK_CAPITAL (20)

Shift键: VK_SHIFT ($10)

Ctrl键: VK_CONTROL (17)

Alt键: VK_MENU (18)

空格键: VK_SPACE ($20/32)

退格键: VK_BACK (8)

左徽标键: VK_LWIN (91)

右徽标键: VK_LWIN (92)

鼠标右键快捷键: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)

无符号二进制数

无符号二进制数使用所有位来表示数值,但是只能表示正数、不能表示负数。

机器数与真值

在计算机中,数的符号也采用二进制位来表示,用“0”表示正,用“1”表示负,并把这个表示符号的位放在数的最高位之前。这种符号被数值化了了数称为机器数,而机器数所表示的原二进制数就称为真值。例如,真值为+0.1001,机器数也是0.1001真值为-0.1001,机器数为1.1001.

数的原码、反码和补码表示

在计算机中,对有符号的机器数常用原码、反码和补码三种方式表示,其主要目的是解决减法运算。

【1】 原码

正数的符号位用0表示,负数的符号位用1表示,有效值部分用二进制绝对值表示,这种表示法称为原码。原码表示与机器数表示形式一致。

【2】 反码

反码是真值的另一种机器数形式,它很容易从原码中转变出来,方法是:正数的反码与原码相同,负数的反码是符号位为“1”,其余的二进制位全部由真值取反得出(即0变为1,1变为0 )

【3】 补码

补码也是机器数的一种形式,它很容易从原码转变出来,方法是:正数的补码与原码相同,负数的补码可由反码的末位加1得出。一个数的补码的补码即是原码本身。

原码、补码和反码

(1)原码表示法

原码表示法是机器数的一种简单的表示法。其符号位用0表示正号,用:表示负号,数值一般用二进制形式表示。设有一数为x,则原码表示可记作〔x〕原。

例如,X1= +1010110

X2= 一1001010

其原码记作:

〔X1〕原=[+1010110]原=01010110

〔X2〕原=[-1001010]原=11001010

原码表示数的范围与二进制位数有关。当用8位二进制来表示小数原码时,其表示范围:

最大值为0.1111111,其真值约为(0.99)10

最小值为1.1111111,其真值约为(一0.99)10

当用8位二进制来表示整数原码时,其表示范围:

最大值为01111111,其真值为(127)10

最小值为11111111,其真值为(-127)10

在原码表示法中,对0有两种表示形式:

〔+0〕原=00000000

[-0] 原=10000000

(2)补码表示法

机器数的补码可由原码得到。如果机器数是正数,则该机器数的补码与原码一样;如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的。设有一数X,则X的补码表示记作〔X〕补。

例如,[X1]=+1010110

[X2]= 一1001010

[X1]原=01010110

[X1]补=01010110

即 [X1]原=[X1]补=01010110

[X2] 原= 11001010

[X2] 补=10110101+1=10110110

补码表示数的范围与二进制位数有关。当采用8位二进制表示时,小数补码的表示范围:

最大为0.1111111,其真值为(0.99)10

最小为1.0000000,其真值为(一1)10

采用8位二进制表示时,整数补码的表示范围:

最大为01111111,其真值为(127)10

最小为10000000,其真值为(一128)10

在补码表示法中,0只有一种表示形式:

[+0]补=00000000

[+0]补=11111111+1=00000000(由于受设备字长的限制,最后的进位丢失)

所以有[+0]补=[+0]补=00000000

(3)反码表示法

机器数的反码可由原码得到。如果机器数是正数,则该机器数的反码与原码一样;如果机器数是负数,则该机器数的反码是对它的原码(符号位除外)各位取反而得到的。设有一数X,则X的反码表示记作〔X〕反。

例如:X1= +1010110

X2= 一1001010

〔X1〕原=01010110

[X1]反=〔X1〕原=01010110

[X2]原=11001010

[X2]反=10110101

反码通常作为求补过程的中间形式,即在一个负数的反码的未位上加1,就得到了该负数的补码。

例1. 已知[X]原=10011010,求[X]补。

分析如下:

由[X]原求[X]补的原则是:若机器数为正数,则[X]原=[X]补;若机器数为负数,则该机器数的补码可对它的原码(符号位除外)所有位求反,再在未位加1而得到。现给定的机器数为负数,故有[X]补=[X]原十1,即

[X]原=10011010

[X]反=11100101

十) 1

[X]补=11100110

例2. 已知[X]补=11100110,求〔X〕原。

分析如下:

对于机器数为正数,则〔X〕原=〔X〕补

对于机器数为负数,则有〔X〕原=〔〔X〕补〕补

现给定的为负数,故有:

〔X〕补=11100110

〔〔X〕补〕反=10011001

十) 1

〔〔X〕补〕补=10011010=〔X〕原

或者说:

数在计算机中是以二进制形式表示的。

数分为有符号数和无符号数。

原码、反码、补码都是有符号定点数的表示方法。

一个有符号定点数的最高位为符号位,0是正,1是副。

以下都以8位整数为例,

原码就是这个数本身的二进制形式。

例如

0000001 就是+1

1000001 就是-1

正数的反码和补码都是和原码相同。

负数的反码是将其原码除符号位之外的各位求反

[-3]反=[10000011]反=11111100

负数的补码是将其原码除符号位之外的各位求反之后在末位再加1。

[-3]补=[10000011]补=11111101

一个数和它的补码是可逆的。

为什么要设立补码呢?

第一是为了能让计算机执行减法:

[a-b]补=a补+(-b)补

第二个原因是为了统一正0和负0

正零:00000000

负零:10000000

这两个数其实都是0,但他们的原码却有不同的表示。

但是他们的补码是一样的,都是00000000

特别注意,如果+1之后有进位的,要一直往前进位,包括符号位!(这和反码是不同的!)

[10000000]补

=[10000000]反+1

=11111111+1

=(1)00000000

=00000000(最高位溢出了,符号位变成了0)

有人会问

10000000这个补码表示的哪个数的补码呢?

其实这是一个规定,这个数表示的是-128

所以n位补码能表示的范围是

-2^(n-1)到2^(n-1)-1

比n位原码能表示的数多一个

又例:

1011

原码:01011

反码:01011 //正数时,反码=原码

补码:01011 //正数时,补码=原码

-1011

原码:11011

反码:10100 //负数时,反码为原码取反

补码:10101 //负数时,补码为原码取反+1

0.1101

原码:0.1101

反码:0.1101 //正数时,反码=原码

补码:0.1101 //正数时,补码=原码

-0.1101

原码:1.1101

反码:1.0010 //负数时,反码为原码取反

补码:1.0011 //负数时,补码为原码取反+1

在计算机内,定点数有3种表示法:原码、反码和补码

所谓原码就是前面所介绍的二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

假设有一 int 类型的数,值为5,那么,我们知道它在计算机中表示为:

00000000 00000000 00000000

00000101

5转换成二制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。

现在想知道,-5在计算机中如何表示?

在计算机中,负数以其正值的补码形式表达。

什么叫补码呢?这得从原码,反码说起。

原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。

比如 00000000 00000000

00000000 00000101 是 5的 原码。

反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。

取反操作指:原为1,得0;原为0,得1。(1变0; 0变1)

比如:将00000000 00000000

00000000 00000101每一位取反,得11111111 11111111 11111111

11111010。

称:11111111 11111111 11111111

11111010 是 00000000 00000000

00000000 00000101 的反码。

反码是相互的,所以也可称:

11111111 11111111 11111111

11111010 和 00000000 00000000

00000000 00000101 互为反码。

补码:反码加1称为补码。

也就是说,要得到一个数的补码,先得到反码,然后将反码加上1,所得数称为补码。

比如:00000000 00000000

00000000 00000101 的反码是:11111111 11111111 11111111

11111010。

那么,补码为:

11111111 11111111 11111111

11111010 1 = 11111111 11111111

11111111 11111011

所以,-5 在计算机中表达为:11111111 11111111 11111111

11111011。转换为十六进制:0xFFFFFFFB。

再举一例,我们来看整数-1在计算机中如何表示。

假设这也是一个int类型,那么:

1、先取1的原码:00000000

00000000 00000000 00000001

2、得反码: 11111111 11111111

11111111 11111110

3、得补码: 11111111 11111111

11111111 11111111

正数的原码,补码,反码都相同,都等于它本身

负数的补码是:符号位为1,其余各位求反,末位加1

反码是:符号位为1,其余各位求反,但末位不加1

也就是说,反码末位加上1就是补码

1100110011 原

1011001100 反 除符号位,按位取反

1011001101 补 除符号位,按位取反再加1

正数的原反补是一样的

在计算机中,数据是以补码的形式存储的:

在n位的机器数中,最高位为符号位,该位为零表示为正,为1表示为负;

其余n-1位为数值位,各位的值可为0或1。

当真值为正时:原码、反码、补码数值位完全相同;

当真值为负时: 原码的数值位保持原样,

反码的数值位是原码数值位的各位取反,

补码则是反码的最低位加一。

注意符号位不变。

如:若机器数是16位:

十进制数 17 的原码、反码与补码均为: 0001

十进制数-17 的原码、反码与补码分别为:1001、01110、01111


本文标签: 表示 原码 补码 符号 二进制