C语言的问题,char型输出的16进制数值怎么输出十进制值来直接利用

C语言的问题,char型输出的16进制数值怎么输出十进制值来直接用起来dh,和dl是两个字节通过串口输出了。因为是向淘宝卖家买的模块,我想怎么直接输出转成十进制数,拿来运... C语言的问题,char型输出的16进制数值怎么输出十进制值来直接用起来
dh,和dl是两个字节通过串口输出了。因为是向淘宝卖家买的模块,我想怎么直接输出转成十进制数,拿来运算
展开
 我来答
tattackor
推荐于2017-09-17 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:891万
展开全部

1、对计算机来说,某一个变量不管是char,int,它在存储时都是二进制的数字而已,输出16进制应该是在com_putchar中控制的,对于一个数来说,输出的格式是几进制是程序来控制的,比如printf("%d", dl), 那么送到终端显示的是十进制的,如果是%x就是16进制,%o就是8进制,但是在程序里,dl就是一个数字而已。

2、例如:dh=0x07; dl=7;  x =  (dh << 8) | dl;
===========

#include<stdio.h>
main(){
unsigned char c=32,a=0xff;  // 0xff 打算作为无符号数,而不是负数用,所以用unsigned
int i=1,x;
x = c + i;
printf("%d\n",x);   // 按10进制输出
x = a+1;
printf("%#x",x);  // 按16进制输出
return 0;
}

得:
33
0x100

lesatc4
2013-09-17
知道答主
回答量:2
采纳率:0%
帮助的人:2882
展开全部
对计算机来说,某一个变量不管是char,int,它在存储时都是二进制的数字而已,你说的输出16进制应该是在com_putchar中控制的,对于一个数来说,输出的格式是几进制是程序来控制的,比如
printf("%d", dl), 那么送到终端显示的是十进制的,如果是%x就是16进制,%o就是8进制,但是在程序里,dl就是一个数字而已
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
金色潜鸟
推荐于2017-09-04 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5706万
展开全部
char 型就是 一字节长度 的整型。
计算机内部,无所谓16,10,8,2进制值,一律是2进制。
你可以直接把它当 十进制值 用于运算。
例如:dh=0x07; dl=7; x = (dh << 8) | dl;
===========
下面例子,混合运算。
#include<stdio.h>
main(){
unsigned char c=32,a=0xff; // 0xff 打算作为无符号数,而不是负数用,所以用unsigned
int i=1,x;
x = c + i;
printf("%d\n",x); // 按10进制输出
x = a+1;
printf("%#x",x); // 按16进制输出
return 0;
}
得:
33
0x100
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
townsin
2013-09-17 · TA获得超过452个赞
知道小有建树答主
回答量:594
采纳率:50%
帮助的人:511万
展开全部
dh,和dl分别是什么类型的值啊?

那你要用于怎么样的计算?
既然是char型的就可以用于计算,比如dl='a'
那么dl ++;dl就等于‘b'了
如果dl='1',而你想用1来计算的话
那么(dl - '0')整体作为值来计算
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友98faa76cfa
2013-09-17
知道答主
回答量:12
采纳率:0%
帮助的人:4万
展开全部
printf("%d", dl)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式