单片机中如何将十六进制转换成十进制(看说明)

因为ad采集到的是16位的,如果要转换成电压值,就必须乘以一个系数,所以要把ad采集值转换为十进制吧,我看到别人是a=(unsignedlong)AD*系数,这样可以吗?... 因为ad采集到的是16位的,如果要转换成电压值,就必须乘以一个系数,所以要把ad采集值转换为十进制吧,我看到别人是a=(unsigned long)AD*系数,这样可以吗?或者还有其他办法吗? 展开
 我来答
南霸天mxw
推荐于2017-10-10 · 知道合伙人教育行家
南霸天mxw
知道合伙人教育行家
采纳数:6329 获赞数:169954
本人毕业于河西学院计算机系,本科学位,自2008年毕业以来任九年级数学教师至今。

向TA提问 私信TA
展开全部
  转换原则:

  16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。字母不区分大小写。
  十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……
  所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。
  转换举例:
  假设有一个十六进数 2AF5, 那么如何换算成10进制呢?
  用竖式计算:
  2AF5换算成10进制:
  第0位: 5 * 16的0次方 = 5
  第1位: F * 16的1次方 = 240
  第2位: A * 16的2次方 = 2560
  第3位: 2 * 16的3次方 = 8192
  直接计算就是:
  5 * 16的0 + F * 16的1次方 + A * 16的2次方 + 2 * 16的3次方 = 10997。
zero_fn
推荐于2017-09-17 · TA获得超过2258个赞
知道小有建树答主
回答量:1173
采纳率:80%
帮助的人:454万
展开全部
你自己处理的数据还要在意它是什么进制的吗?
按我的理解,系数不是用来转换电压值的进制的,而是用来进行电平值比较的吧。
比如8位AD 5v采样, 读寄存器后值是0xff ,那么是多少V 电压呢? 5V对吧,
那读数为0x80 呢? 0xff的一半 ? 可以理解为2.5V
这个过程应该不是你所理解的 “把ad采集值转换为十进制” 的过程
如果你是指这个过程的话,那么 那个系数就是转换的工具了。系数可以理解为5V电压的 0x00000001 是多少V ?
追问
ad采集到的是16进制数吧,但是如果要换算成电压,也就是v=AD*3300/1024,这样的话ad值应该也是10进制的才行吧,那么怎么换算呢?
------------------------------------------------------------------------------------
我觉得你的意思好像只要把1024换算成16进制就好了?
追答
对于你程序的读数后继判断来说是什么进制无所谓,关键只是读回的采样值数据如何去进行判断吧,要知道某个16位数据读到后到底采样的模拟值是多少?这个换算过程我觉得不该叫做10进制转换。
程序里的计算你不用关心进制问题啊,你只需要告诉计算机你的数是16进制的就可以了,计算中它会自己去转换的。
例如: 你读到的是16位的值 0xabcdefff (十进制2882400255),这两个写法对你来说不通,但对计算机来说是没有区别的,v=AD*3300/1024这样的算式你不用关心AD是什么进制,无论它是什么进制,他都表示的同一个数。
如果你要把结果显示给人看的话才要考虑bcd转换。 就类似于printf()里面的格式符 %d %x %o的区别
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
luozi12345678
2011-04-10
知道答主
回答量:42
采纳率:0%
帮助的人:0
展开全部
AD采样数据是16进制(hex),计算系数也要是16进制,这样好算出电压值16进制,如果结果需要十进制(bcd),在将hex结果转为bcd即可,转法很简单
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zychu_08
2011-04-10
知道答主
回答量:6
采纳率:0%
帮助的人:0
展开全部
void to_base_n(unsigned long n, unsigned int base) //将一个数n 按base进制打印
{
int r;

r = n % base;
if (n >= base)
to_base_n(n / base, base);
putchar('0' + r);

}
追问
没有简单点的吗?他的这个a=(unsigned long)AD*系数
能不能unsigned long强行转换?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式