要把一个字节单元中的两位十六进制数字转换成ASCII码,需要先分离这两个数字,即把高4位和低4位分开然后转换成各自的ASCII码。转换时,按0~9和A~F两种不同的情况,采用分支,分别处理,0~9的数字,加30H,而A~F的数字,加37H。
if(a[i]<=9)
{a[i]=a[i]+0x30;}
else
{a[i]=a[i]+0x37;}
ASCII | 16进制 |
---|---|
0 | 30H |
1 | 31H |
2 | 32H |
3 | 33H |
4 | 34H |
5 | 35H |
6 | 36H |
7 | 37H |
8 | 38H |
9 | 39H |
A | 41H |
B | 42H |
C | 43H |
D | 44H |
E | 45H |
F | 46H |