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

C语言的问题,char型输出的16进制数值怎么输出十进制值来直接用起来
dh,和dl是两个字节通过串口输出了。因为是向淘宝卖家买的模块,我想怎么直接输出转成十进制数,拿来运算

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-17
对计算机来说,某一个变量不管是char,int,它在存储时都是二进制的数字而已,你说的输出16进制应该是在com_putchar中控制的,对于一个数来说,输出的格式是几进制是程序来控制的,比如
printf("%d", dl), 那么送到终端显示的是十进制的,如果是%x就是16进制,%o就是8进制,但是在程序里,dl就是一个数字而已
第2个回答  推荐于2017-09-04
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本回答被提问者采纳
第3个回答  2013-09-17
dh,和dl分别是什么类型的值啊?

那你要用于怎么样的计算?
既然是char型的就可以用于计算,比如dl='a'
那么dl ++;dl就等于‘b'了
如果dl='1',而你想用1来计算的话
那么(dl - '0')整体作为值来计算
第4个回答  2013-09-17
printf("%d", dl)

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网