ASCII、BCD转十六进制

  • ASCII转十六进制
    • 转换规则
    • Python实现
  • BCD转十进制、十六进制
    • BCD码的优点
    • BCD码分类
    • 各种BCD码的特点
    • 转换规则

ASCII转十六进制

转换规则

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

Python实现

asciiData.decode('ascii').encode('hex')

BCD转十进制、十六进制

BCD码(Binary-Coded Decimal‎)亦称二进码十进数或二-十进制代码。 用4位二进制数来表示1位十进制数中的0~9这10个数码。 是一种二进制的数字编码形式,用二进制编码的十进制代码。

BCD码的优点

这种编码形式使二进制和十进制之间的转换能够快捷进行。采用BCD码,既可保存数值的精确度,又可避免使电脑作浮点运算时所消耗的时间。

BCD码分类

(1)BCD码分为有权和无权两类:
有权BCD码:8421码,2421码,5421码,…
无权BCD码:余3码,格雷码,…
其中,8421码是最常用的有权BCD码。
(2)BCD码又可分为压缩式和非压缩式两类。

各种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 <stdio.h>
#include <string.h>/
//
// 功能:二进制取反
//
// 输入: 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<length; i++){dst[i] = src[i]^0xFF;}return 0;
}//
//
// 功能:十六进制转为十进制
//
// 输入: const unsigned char *hex          待转换的十六进制数据
//      int length                       十六进制数据长度
//
// 输出:
//
// 返回: int  rslt                        转换后的十进制数据
//
// 思路:十六进制每个字符位所表示的十进制数的范围是 0 ~255 ,进制为 256
//      左移 8 位 (<<8) 等价乘以 256
//
/
unsigned long HextoDec(const unsigned char *hex, int length)
{int i;unsigned long rslt = 0;for(i=0; i<length; i++){rslt += (unsigned long)(hex[i])<<(8*(length-1-i));}return rslt;
}/
//
// 功能:十进制转十六进制
//
// 输入: int dec                     待转换的十进制数据
//      int length                  转换后的十六进制数据长度
//
// 输出: unsigned char *hex          转换后的十六进制数据
//
// 返回: 0    success
//
// 思路:原理同十六进制转十进制
//
int DectoHex(int dec, unsigned char *hex, int length)
{int i;for(i=length-1; 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<times; i++)rslt *= base;return rslt;
}/
//
// 功能: BCD 转 10 进制
//
// 输入: const unsigned char *bcd     待转换的 BCD 码
//      int length                   BCD 码数据长度
//
// 输出:
//
// 返回: unsigned long               当前数据位的权
//
// 思路:压缩 BCD 码一个字符所表示的十进制数据范围为 0 ~ 99, 进制为 100
//      先求每个字符所表示的十进制值,然后乘以权
//
unsigned long  BCDtoDec(const unsigned char *bcd, int length)
{int i, tmp;unsigned long dec = 0;for(i=0; i<length; i++){tmp = ((bcd[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 ) ;
}

Python中ASCII转十六进制、C中BCD转十进制、十六进制学习记录相关推荐

  1. java-RGB与十六进制的互相转换 / 颜色十进制 / 十六进制 互转

    一.java-RGB转换成十六进制 /*** rgb转换成16进制* @param r* @param g* @param b* @return*/ public String rgb2Hex(int ...

  2. Java类型转换工具类(十六进制—bytes互转、十进制—十六进制互转,String—Double互转)

    /*** 数据类型转换工具类* @author cyf**/ public class NumConvertUtil{/*** bytes 转16进制字符串* @param bArray* @retu ...

  3. Python|装饰器|执行时间|递归|动态属性|静态方法和类|继承和多态|isinstance类型判断|溢出|“魔法”方法|语言基础50课:学习记录(6)-函数的高级应用、面向对象编程、进阶及应用

    文章目录 系列目录 原项目地址: 第16课:函数的高级应用 装饰器(记录执行时间的例子) 递归调用 简单的总结 第17课:面向对象编程入门 类和对象 定义类 创建和使用对象 初始化方法 打印对象 面向 ...

  4. Python|Git remote|hosts|PyCharm常用快捷键|变量转换|命名|类型|运算符|分支|调整tab|循环|语言基础50课:学习记录(1)-项目简介及变量、条件及循环

    目录 系列目录 均引自原项目地址: Python语言基础50课简介及相关网址 修改 hosts 文件 解决 GitHub 上图片无法显示 视频资源 Python语言基础50课代码等文件资源 表1. P ...

  5. python 0x0101_Python中ASCII转十六进制、C中BCD转十进制、十六进制学习记录

    ASCII.BCD转十六进制 ASCII转十六进制转换规则Python实现 BCD转十进制.十六进制BCD码的优点BCD码分类各种BCD码的特点转换规则 ASCII转十六进制 转换规则 ASCII(A ...

  6. python汉字转到ascii码_python中ASCII码字符与int之间的转换方法

    ASCII码转换为int:ord('A') 65 int转为ASCII码:chr(65) 'A' 题目内容: 实现一个凯撒密码的变种算法,对输入字符串进行加解密处理 把字母a-z分别循环对应为相距13 ...

  7. Python中ASCII码的获取

    Python中ASCII码的获取 ord函数可以获取字符的ASCII码,用法如下: 代码实现: #ord('字符')可以返回该字符的ASCII码 print(ord('a')) 运行结果:

  8. bcd码 php,php bcd码压缩-把十进制数字压缩到十六进制数据中

    下面我们一起来看和篇关于php bcd码压缩-把十进制数字压缩到十六进制数据中实例,希望文章给各位同学带来帮助哦. 例,php bcd码压缩-把十进制数字压缩到十六进制数据中<?php /* p ...

  9. python 试题归纳及答疑 更新中.....

    一.Python基础篇(80题) 1.你为什么学习Python? 一.答题思路 1.阐述 python 优缺点 2.Python应用领域说明 3.根据自身工作情况阐述为什么会使用python 1)py ...

最新文章

  1. 怎样定义最小 可遗传神经网络
  2. 程序员面试什么最重要
  3. java获取2017年第39周_java中怎么样取出39周的每周开始时间和每周结束时间?
  4. Linux中一些常用的很巧妙的命令
  5. PostgreSQL忘记输入where条件update更新整张表的解决办法
  6. 新的DMN编辑器预览
  7. (需求实战_01) SpringBoot2.x 整合RabbitMQ_生产端
  8. java匿名类和匿名对象及this的其他用法
  9. Ubuntu 20.04安装python3.6版本后terminal终端无法打开
  10. oracle的约束什么作用,Oracle数据库知识之约束
  11. LNMP下wordpress无法切换主题,只显示当前主题解决方法
  12. python函数的使用
  13. Android常用组件
  14. live2d_基于Qt的Live2D示例(几乎都是官方给的代码就是啦!)
  15. python绘图技巧(高清图)
  16. 服务器虚拟化的几种方式,服务器虚拟化究竟应当选择哪种方式?
  17. 关于 RESTFUL API 安全认证方式的一些总结
  18. linux下ppt转图片的方法
  19. 88E1111配置及使用
  20. TWS耳机哪个牌子音质好?TWS耳机推荐!

热门文章

  1. c语言库函数大全文库,c语言常用的库函数_相关文章专题_写写帮文库
  2. 怎么在人民网发稿子?
  3. python 微信发送图片给好友_Python给指定微信好友自动发送信息和图片
  4. pyspark- ml-features
  5. 01_使用jupyter
  6. 会计税务一键式统计2.0_按照内容锁定动态锁定工作薄,待更新
  7. CC2530学习(一)CC2530微控制器介绍
  8. perl脚本实战总结
  9. tensorflow slim 安装教程
  10. 如何成长为一名开发人员