ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)是基于拉丁字母的一套电脑编码系统,ASCII码表主要用于显示现代英语和其他西欧语言。转换规则如下表:
十六进制代码 |
MCS 字符或缩写 |
DEC 多国字符名 |
ASCII 控制字符 1 |
||
00 |
NUL |
空字符 |
01 |
SOH |
标题起始 (Ctrl/A) |
02 |
STX |
文本起始 (Ctrl/B) |
03 |
ETX |
文本结束 (Ctrl/C) |
04 |
EOT |
传输结束 (Ctrl/D) |
05 |
ENQ |
询问 (Ctrl/E) |
06 |
ACK |
认可 (Ctrl/F) |
07 |
BEL |
铃 (Ctrl/G) |
08 |
BS |
退格 (Ctrl/H) |
09 |
HT |
水平制表栏 (Ctrl/I) |
0A |
LF |
换行 (Ctrl/J) |
0B |
VT |
垂直制表栏 (Ctrl/K) |
0C |
FF |
换页 (Ctrl/L) |
0D |
CR |
回车 (Ctrl/M) |
0E |
SO |
移出 (Ctrl/N) |
0F |
SI |
移入 (Ctrl/O) |
10 |
DLE |
数据链接丢失 (Ctrl/P) |
11 |
DC1 |
设备控制 1 (Ctrl/Q) |
12 |
DC2 |
设备控制 2 (Ctrl/R) |
13 |
DC3 |
设备控制 3 (Ctrl/S) |
14 |
DC4 |
设备控制 4 (Ctrl/T) |
15 |
NAK |
否定接受 (Ctrl/U) |
16 |
SYN |
同步闲置符 (Ctrl/V) |
17 |
ETB |
传输块结束 (Ctrl/W) |
18 |
CAN |
取消 (Ctrl/X) |
19 |
EM |
媒体结束 (Ctrl/Y) |
1A |
SUB |
替换 (Ctrl/Z) |
1B |
ESC |
换码符 |
1C |
FS |
文件分隔符 |
1D |
GS |
组分隔符 |
1E |
RS |
记录分隔符 |
1F |
US |
单位分隔符 |
ASCII 特殊和数字字符 |
||
20 |
SP |
空格 |
21 |
! |
感叹号 |
22 |
" |
引号 (双引号) |
23 |
# |
数字符号 |
24 |
$ |
美元符 |
25 |
% |
百分号 |
26 |
& |
和号 |
27 |
" |
省略号 (单引号) |
28 |
( |
左圆括号 |
29 |
) |
右圆括号 |
2A |
* |
星号 |
2B |
|
加号 |
2C |
, |
逗号 |
2D |
-- |
连字号或减号 |
2E |
. |
句点或小数点 |
2F |
/ |
斜杠 |
30 |
0 |
零 |
31 |
1 |
1 |
32 |
2 |
2 |
33 |
3 |
3 |
34 |
4 |
4 |
35 |
5 |
5 |
36 |
6 |
6 |
37 |
7 |
7 |
38 |
8 |
8 |
39 |
9 |
9 |
3A |
: |
冒号 |
3B |
; |
分号 |
3C |
< |
小于 |
3D |
= |
等于 |
3E |
> |
大于 |
3F |
? |
问号 |
ASCII 字母字符 |
||
40 |
@ |
商业 at 符号 |
41 |
A |
大写字母 A |
42 |
B |
大写字母 B |
43 |
C |
大写字母 C |
44 |
D |
大写字母 D |
45 |
E |
大写字母 E |
46 |
F |
大写字母 F |
47 |
G |
大写字母 G |
48 |
H |
大写字母 H |
49 |
I |
大写字母 I |
4A |
J |
大写字母 J |
4B |
K |
大写字母 K |
4C |
L |
大写字母 L |
4D |
M |
大写字母 M |
4E |
N |
大写字母 N |
4F |
O |
大写字母 O |
50 |
P |
大写字母 P |
51 |
Q |
大写字母 Q |
52 |
R |
大写字母 R |
53 |
S |
大写字母 S |
54 |
T |
大写字母 T |
55 |
U |
大写字母 U |
56 |
V |
大写字母 V |
57 |
W |
大写字母 W |
58 |
X |
大写字母 X |
59 |
Y |
大写字母 Y |
5A |
Z |
大写字母 Z |
5B |
[ |
左中括号 |
5C |
\ |
反斜杠 |
5D |
] |
右中括号 |
5E |
^ |
音调符号 |
5F |
_ |
下划线 |
60 |
` |
重音符 |
61 |
a |
小写字母 a |
62 |
b |
小写字母 b |
63 |
c |
小写字母 c |
64 |
d |
小写字母 d |
65 |
e |
小写字母 e |
66 |
f |
小写字母 f |
67 |
g |
小写字母 g |
68 |
h |
小写字母 h |
69 |
i |
小写字母 i |
6A |
j |
小写字母 j |
6B |
k |
小写字母 k |
6C |
l |
小写字母 l |
6D |
m |
小写字母 m |
6E |
n |
小写字母 n |
6F |
o |
小写字母 o |
70 |
p |
小写字母 p |
71 |
q |
小写字母 q |
72 |
r |
小写字母 r |
73 |
s |
小写字母 s |
74 |
t |
小写字母 t |
75 |
u |
小写字母 u |
76 |
v |
小写字母 v |
77 |
w |
小写字母 w |
78 |
x |
小写字母 x |
79 |
y |
小写字母 y |
7A |
z |
小写字母 z |
7B |
{ |
左大括号 |
7C |
| |
垂直线 |
7D |
} |
右大括号 (ALTMODE) |
7E |
~ |
代字号 (ALTMODE) |
7F |
DEL |
擦掉 (DELETE) |
控制字符 |
||
80 |
|
[保留] |
81 |
|
[保留] |
82 |
|
[保留] |
83 |
|
[保留] |
84 |
IND |
索引 |
85 |
NEL |
下一行 |
86 |
SSA |
被选区域起始 |
87 |
ESA |
被选区域结束 |
88 |
HTS |
水平制表符集 |
89 |
HTJ |
对齐的水平制表符集 |
8A |
VTS |
垂直制表符集 |
8B |
PLD |
部分行向下 |
8C |
PLU |
部分行向上 |
8D |
RI |
反向索引 |
8E |
SS2 |
单移 2 |
8F |
SS3 |
单移 3 |
90 |
DCS |
设备控制字符串 |
91 |
PU1 |
专用 1 |
92 |
PU2 |
专用 2 |
93 |
STS |
设置传输状态 |
94 |
CCH |
取消字符 |
95 |
MW |
消息等待 |
96 |
SPA |
保护区起始 |
97 |
EPA |
保护区结束 |
98 |
|
[保留] |
99 |
|
[保留] |
9A |
|
[保留] |
9B |
CSI |
控制序列引导符 |
9C |
ST |
字符串终止符 |
9D |
OSC |
操作系统命令 |
9E |
PM |
秘密消息 |
9F |
APC |
应用程序 |
其他字符 |
||
A0 |
|
[保留] 2 |
A1 |
? |
反向感叹号 |
A2 |
? |
分币符 |
A3 |
? |
英磅符 |
A4 |
|
[保留] 2 |
A5 |
? |
人民币符 |
A6 |
|
[保留] 2 |
A7 |
§ |
章节符 |
A8 |
¤ |
通用货币符号 2 |
A9 |
? |
版权符号 |
AA |
? |
阴性顺序指示符 |
AB |
? |
左角引号 |
AC |
|
[保留] 2 |
AD |
|
[保留] 2 |
AE |
|
[保留] 2 |
AF |
|
[保留] 2 |
B0 |
° |
温度符 |
B1 |
± |
加/减号 |
B2 |
? |
上标 2 |
B3 |
? |
上标 3 |
B4 |
|
[保留] 2 |
B5 |
? |
微符 |
B6 |
? |
段落符,pilcrow |
B7 |
· |
中点 |
B8 |
|
[保留] 2 |
B9 |
? |
上标 1 |
BA |
? |
阳性顺序指示符 |
BB |
? |
右角引号 |
BC |
? |
分数四分之一 |
BD |
? |
分数二分之一 |
BE |
|
[保留] 2 |
BF |
? |
反向问号 |
C0 |
? |
带重音符的大写字母 A |
C1 |
? |
带尖锐重音的大写字母 A |
C2 |
? |
带音调符号的大写字母 A |
C3 |
? |
带代字号的大写字母 A |
C4 |
? |
带元音变音 (分音符号) 的大写字母 A |
C5 |
? |
带铃声的大写字母 A |
C6 |
? |
大写字母 AE 双重元音 |
C7 |
? |
带变音符号的大写字母 C |
C8 |
? |
带重音符的大写字母 E |
C9 |
? |
带尖锐重音的大写字母 E |
CA |
? |
带音调符号的大写字母 E |
CB |
? |
带元音变音 (分音符号) 的大写字母 E |
CC |
? |
带重音符的大写字母 I |
CD |
? |
带尖锐重音的大写字母 I |
CE |
? |
带音调符号的大写字母 I |
CF |
? |
带元音变音 (分音符号) 的大写字母 I |
D0 |
|
[保留] 2 |
D1 |
? |
带代字号的大写字母 N |
D2 |
? |
带重音符的大写字母 O |
D3 |
? |
带尖锐重音的大写字母 O |
D4 |
? |
带音调符号的大写字母 O |
D5 |
? |
带代字号的大写字母 O |
D6 |
? |
带元音变音 (分音符号) 的大写字母 O |
D7 |
OE |
大写字母 OE 连字 2 |
D8 |
? |
带斜杠的大写字母 O |
D9 |
? |
带重音符的大写字母 U |
DA |
? |
带尖锐重音的大写字母 U |
DB |
? |
带音调符号的大写字母 U |
DC |
? |
带元音变音 (分音符号) 的大写字母 U |
DD |
Y |
带元音变音 (分音符号) 的大写字母 Y |
DE |
|
[保留] 2 |
DF |
? |
德语高调小写字母 s |
E0 |
à |
带重音符的小写字母 a |
E1 |
á |
带尖锐重音的小写字母 a |
E2 |
? |
带音调符号的小写字母 a |
E3 |
? |
带代字号的小写字母 a |
E4 |
? |
带元音变音 (分音符号) 的小写字母 a |
E5 |
? |
带铃声的小写字母 a |
E6 |
? |
小写字母 ae 双重元音 |
E7 |
? |
带变音符号的小写字母 c |
E8 |
è |
带重音符的小写字母 e |
E9 |
é |
带尖锐重音的小写字母 e |
EA |
ê |
带音调符号的小写字母 e |
EB |
? |
带元音变音 (分音符号) 的小写字母 e |
EC |
ì |
带重音符的小写字母 i |
ED |
í |
带尖锐重音的小写字母 i |
EE |
? |
带音调符号的小写字母 i |
EF |
? |
带元音变音 (分音符号) 的小写字母 i |
F0 |
|
[保留] 2 |
F1 |
? |
带代字号的小写字母 n |
F2 |
ò |
带重音符的小写字母 o |
F3 |
ó |
带尖锐重音的小写字母 o |
F4 |
? |
带音调符号的小写字母 o |
F5 |
? |
带代字号的小写字母 o |
F6 |
? |
带元音变音 (分音符号) 的小写字母 o |
F7 |
oe |
小写字母 oe 连字 2 |
F8 |
? |
带斜杠的小写字母 o |
F9 |
ù |
带重音符的小写字母 u |
FA |
ú |
带尖锐重音的小写字母 u |
FB |
? |
带音调符号的小写字母 u |
FC |
ü |
带元音变音 (分音符号) 的小写字母 u |
FD |
? |
带元音变音 (分音符号) 的小写字母 y 2 |
FE |
|
[保留] 2 |
FF |
|
[保留] 2 |
asciiData.decode('ascii').encode('hex')
BCD码(Binary-Coded Decimal)亦称二进码十进数或二-十进制代码。 用4位二进制数来表示1位十进制数中的0~9这10个数码。 是一种二进制的数字编码形式,用二进制编码的十进制代码。
这种编码形式使二进制和十进制之间的转换能够快捷进行。采用BCD码,既可保存数值的精确度,又可避免使电脑作浮点运算时所消耗的时间。
(1)BCD码分为有权和无权两类:
有权BCD码:8421码,2421码,5421码,…
无权BCD码:余3码,格雷码,…
其中,8421码是最常用的有权BCD码。
(2)BCD码又可分为压缩式和非压缩式两类。
8421码编码直观,易于理解,最常用
5421码和2421码中大于5的数字都是高位为1,5以下的高位为0
余3码是在8421码基础上加上3,有上溢出和下溢出的空间
8421码
十进制数 |
8421码
|
0 |
0000 |
1 |
0001 |
2 |
0010 |
3 |
0011 |
4 |
0100 |
5 |
0101 |
6 |
0110 |
7 |
0111 |
8 |
1000 |
9 |
1001 |
其他较常用的BCD码
十进制数 |
5421码
|
2421码 |
余3码 |
0 |
0000 |
0000 |
0011 |
1 |
0001 |
0001 |
0100 |
2 |
0010 |
0010 |
0101 |
3 |
0011 |
0011 |
0110 |
4 |
0100 |
0100 |
0111 |
5 |
1000 |
1011 |
1000 |
6 |
1001 |
1100 |
1001 |
7 |
1010 |
1101 |
1010 |
8 |
1011 |
1110 |
1011 |
9 |
1100 |
1111 |
1100 |
## C实现
#include
#include
/////////////////////////////////////////////////////
//
// 功能:二进制取反
//
// 输入: const unsigned char *src 二进制数据
// int length 待转换的二进制数据长度
//
// 输出: unsigned char *dst 取反后的二进制数据
//
// 返回: 0 success
//
//////////////////////////////////////////////////////
int convert(unsigned char *dst, const unsigned char *src, int length)
{
int i;
for(i=0; i=0; i--)
{
hex[i] = (dec%256)&0xFF;
dec /= 256;
}
return 0;
}
/////////////////////////////////////////////////////////
//
// 功能:求权
//
// 输入: int base 进制基数
// int times 权级数
//
// 输出:
//
// 返回: unsigned long 当前数据位的权
//
//////////////////////////////////////////////////////////
unsigned long power(int base, int times)
{
int i;
unsigned long rslt = 1;
for(i=0; i>4)&0x0F)*10 + (bcd[i]&0x0F);
dec += tmp * power(100, length-1-i);
}
return dec;
}
/////////////////////////////////////////////////////////
//
// 功能:十进制转 BCD 码
//
// 输入: int Dec 待转换的十进制数据
// int length BCD 码数据长度
//
// 输出: unsigned char *Bcd 转换后的 BCD 码
//
// 返回: 0 success
//
// 思路:原理同 BCD 码转十进制
//
//////////////////////////////////////////////////////////
int DectoBCD(int Dec, unsigned char *Bcd, int length)
{
int i;
int temp;
for(i=length-1; i>=0; i--)
{
temp = Dec%100;
Bcd[i] = ((temp/10)<<4) + ((temp%10) & 0x0F);
Dec /= 100;
}
return 0;
}
//------------- 函数信息 ------------------------------------------
// 函 数 名 : BCDtoDec
// 函数描述 : BCD 码转换成十进制码
// 入口参数 : temp: 转化的 BCD 码
// 返 回 : 转化后的十进制码
// 作 者 :
// 日 期 : 2006.11.24
// 说 明 :
//
//---------------------------------------------------------------
uint8 BCDtoDec( uint8 temp )
{
return ( ( temp/16 )*10+temp%16) ;
}
//------------- 函数信息 ------------------------------------------
// 函 数 名 : DectoBCD
// 函数描述 : 十 / 十六进制码转换成 BCD 码
// 入口参数 : temp: 转化的十进制码
// 返 回 : 转化后的 BCD 码
// 作 者 :
// 日 期 : 2006.11.24
// 说 明 :
//
//---------------------------------------------------------------
uint8 DectoBCD( uint8 temp )
{
return ( (temp/10)*16 + temp%10 ) ;
}