Python中ASCII转十六进制、C中BCD转十进制、十六进制学习记录
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转十进制、十六进制学习记录相关推荐
- java-RGB与十六进制的互相转换 / 颜色十进制 / 十六进制 互转
一.java-RGB转换成十六进制 /*** rgb转换成16进制* @param r* @param g* @param b* @return*/ public String rgb2Hex(int ...
- Java类型转换工具类(十六进制—bytes互转、十进制—十六进制互转,String—Double互转)
/*** 数据类型转换工具类* @author cyf**/ public class NumConvertUtil{/*** bytes 转16进制字符串* @param bArray* @retu ...
- Python|装饰器|执行时间|递归|动态属性|静态方法和类|继承和多态|isinstance类型判断|溢出|“魔法”方法|语言基础50课:学习记录(6)-函数的高级应用、面向对象编程、进阶及应用
文章目录 系列目录 原项目地址: 第16课:函数的高级应用 装饰器(记录执行时间的例子) 递归调用 简单的总结 第17课:面向对象编程入门 类和对象 定义类 创建和使用对象 初始化方法 打印对象 面向 ...
- Python|Git remote|hosts|PyCharm常用快捷键|变量转换|命名|类型|运算符|分支|调整tab|循环|语言基础50课:学习记录(1)-项目简介及变量、条件及循环
目录 系列目录 均引自原项目地址: Python语言基础50课简介及相关网址 修改 hosts 文件 解决 GitHub 上图片无法显示 视频资源 Python语言基础50课代码等文件资源 表1. P ...
- python 0x0101_Python中ASCII转十六进制、C中BCD转十进制、十六进制学习记录
ASCII.BCD转十六进制 ASCII转十六进制转换规则Python实现 BCD转十进制.十六进制BCD码的优点BCD码分类各种BCD码的特点转换规则 ASCII转十六进制 转换规则 ASCII(A ...
- python汉字转到ascii码_python中ASCII码字符与int之间的转换方法
ASCII码转换为int:ord('A') 65 int转为ASCII码:chr(65) 'A' 题目内容: 实现一个凯撒密码的变种算法,对输入字符串进行加解密处理 把字母a-z分别循环对应为相距13 ...
- Python中ASCII码的获取
Python中ASCII码的获取 ord函数可以获取字符的ASCII码,用法如下: 代码实现: #ord('字符')可以返回该字符的ASCII码 print(ord('a')) 运行结果:
- bcd码 php,php bcd码压缩-把十进制数字压缩到十六进制数据中
下面我们一起来看和篇关于php bcd码压缩-把十进制数字压缩到十六进制数据中实例,希望文章给各位同学带来帮助哦. 例,php bcd码压缩-把十进制数字压缩到十六进制数据中<?php /* p ...
- python 试题归纳及答疑 更新中.....
一.Python基础篇(80题) 1.你为什么学习Python? 一.答题思路 1.阐述 python 优缺点 2.Python应用领域说明 3.根据自身工作情况阐述为什么会使用python 1)py ...
最新文章
- 怎样定义最小 可遗传神经网络
- 程序员面试什么最重要
- java获取2017年第39周_java中怎么样取出39周的每周开始时间和每周结束时间?
- Linux中一些常用的很巧妙的命令
- PostgreSQL忘记输入where条件update更新整张表的解决办法
- 新的DMN编辑器预览
- (需求实战_01) SpringBoot2.x 整合RabbitMQ_生产端
- java匿名类和匿名对象及this的其他用法
- Ubuntu 20.04安装python3.6版本后terminal终端无法打开
- oracle的约束什么作用,Oracle数据库知识之约束
- LNMP下wordpress无法切换主题,只显示当前主题解决方法
- python函数的使用
- Android常用组件
- live2d_基于Qt的Live2D示例(几乎都是官方给的代码就是啦!)
- python绘图技巧(高清图)
- 服务器虚拟化的几种方式,服务器虚拟化究竟应当选择哪种方式?
- 关于 RESTFUL API 安全认证方式的一些总结
- linux下ppt转图片的方法
- 88E1111配置及使用
- TWS耳机哪个牌子音质好?TWS耳机推荐!