C语言的问题,char型输出的16进制数值怎么输出十进制值来直接利用
C语言的问题,char型输出的16进制数值怎么输出十进制值来直接用起来dh,和dl是两个字节通过串口输出了。因为是向淘宝卖家买的模块,我想怎么直接输出转成十进制数,拿来运...
C语言的问题,char型输出的16进制数值怎么输出十进制值来直接用起来
dh,和dl是两个字节通过串口输出了。因为是向淘宝卖家买的模块,我想怎么直接输出转成十进制数,拿来运算 展开
dh,和dl是两个字节通过串口输出了。因为是向淘宝卖家买的模块,我想怎么直接输出转成十进制数,拿来运算 展开
5个回答
展开全部
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
展开全部
对计算机来说,某一个变量不管是char,int,它在存储时都是二进制的数字而已,你说的输出16进制应该是在com_putchar中控制的,对于一个数来说,输出的格式是几进制是程序来控制的,比如
printf("%d", dl), 那么送到终端显示的是十进制的,如果是%x就是16进制,%o就是8进制,但是在程序里,dl就是一个数字而已
printf("%d", dl), 那么送到终端显示的是十进制的,如果是%x就是16进制,%o就是8进制,但是在程序里,dl就是一个数字而已
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
计算机内部,无所谓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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
dh,和dl分别是什么类型的值啊?
那你要用于怎么样的计算?
既然是char型的就可以用于计算,比如dl='a'
那么dl ++;dl就等于‘b'了
如果dl='1',而你想用1来计算的话
那么(dl - '0')整体作为值来计算
那你要用于怎么样的计算?
既然是char型的就可以用于计算,比如dl='a'
那么dl ++;dl就等于‘b'了
如果dl='1',而你想用1来计算的话
那么(dl - '0')整体作为值来计算
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
printf("%d", dl)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询