单片机中,如何将16进制转换为ASC码?

我不知道转换原理,也不知道如何编程,能讲的详细点吗?谢谢各位
要C语言编程

1. 16进制数为0~F的组合(例如3FFF, 就像10进制数是0~9的组合一样), 而ASCII码是一组符号集合,
它用一个8位(一个字节)的二进制数来表示字符(因为计算机用二进制数来运算), 其中0~9对应的二进制数为0x30~0x39,
A~F对应的二进制数为0x41~0x46 (小写a~f为0x61~0x66).

2. 将16进制数转换为ASCII码就是将0~F转换为字符"0"~"F" (在计算机存储的表示为0x30~0x46). 转换的算法可以多种, 比较简单的算法如下:

a) 定义一个数组

const byte ASCII[]={0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46}; // byte 为一个字节的定义

假设i为存储单个16进制的数字, 则用ASCII[i]即可获得相应的ASCII码
b) 也可以用计算的方式
假设i中存储单个16进制的数字,
if (i > 9)
{
ascii = 0x40 + (i - 9); // A~F
}
else
{
ascii = 0x30 + i; // 0~9
}
3. 多位数的16进制数可以通过逐位分解实现, 例如0x3AD0, 可以分解为3, A, D, 0转换. 每位16进制数占半个字节, 所以很容易利用移位(连续左移4bits)进行分离.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-07-20
ASC码就是一种规定,你找到ASC码表,按照表转换就行了。当然其中数字和字母等是有规律的,仔细看看就好了。
第2个回答  2010-07-20
转换原理和如何编程,可以参考:
http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/category/ascii%C2%EB%BA%CD16%BD%F8%D6%C6%CA%FD本回答被提问者采纳
第3个回答  2010-07-20
一个字符加单引号 多个字符加双引号
第4个回答  2010-07-20
先转换成10进制再转换