例如:
void BCD_ASCIi(uchar BCD,uchar ptasc[])
{
ptasc[0]=BCD/16|0x30; //0x58 35 38 //转换十位
ptasc[1]=BCD&0x0F|0x30; //转换个位
}
假如BCD赋予 0x58 那么 “BCD/16”是把BCD转为十进制再除16;还是把16转为十六进制再和0x58运算?
谢谢啦~
c语言中算数运算中可以有十进制和16进制的混合运算吗?
答案:4 悬赏:30 手机版
解决时间 2021-03-24 07:42
- 提问者网友:未信
- 2021-03-23 10:12
最佳答案
- 五星知识达人网友:三千妖杀
- 2021-03-23 11:49
能混合运算的 ,一般转化为 十进制 。C应该会自动转换
char 和 int 型一起运算时会将 char 先变为 int 型 。
其他转换 都是 从占内存小的 转到 占内存大的 。
char ==>> int ==>> float ==>> double 。
而且 float 及double 赋值时 ,应为 float fLine = 2.0 ; 最好不要省略小数点及后面的0 。
书上一般有介绍 。
char 和 int 型一起运算时会将 char 先变为 int 型 。
其他转换 都是 从占内存小的 转到 占内存大的 。
char ==>> int ==>> float ==>> double 。
而且 float 及double 赋值时 ,应为 float fLine = 2.0 ; 最好不要省略小数点及后面的0 。
书上一般有介绍 。
全部回答
- 1楼网友:白昼之月
- 2021-03-23 14:42
问题不在于进制转换,而是强制类型装换。
BCD(uchar) 16(int) -> BCD(int)也就是所谓十进制
然后BCD(int)|0x30->int
uchar p[0]=(uchar)int
而下面的由于都是uchar所以不发生转换
- 2楼网友:独行浪子会拥风
- 2021-03-23 13:08
我想,结果可能不会错把,,电脑运算都是2进制运算的。。都是转化成2进制进行运算的(电脑只能识别2进制),结果对不对,就不知道,你自己可以试试
- 3楼网友:千夜
- 2021-03-23 12:38
一样!鸭子,给分
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯