51单片机c语言编程,关于16进制位数不同的加法问题

请问二进制加法:1110+11110000 系统是如何补齐位数相加的?若想得到结果为11111110,如何用十六进制数表示?但是不希望写成 0x0e+0xf0。
谢谢~

51最小数据存储就是一个字节,你写成1110实际上系统会自动的变成00001110,0xe和0x0e对对于系统来说是一样的。追问

就是说如果 a=0xe 用_crol_(a,1) 是会变成 a=00011100,而不是a=1101 ?那有没有办法是变成 1101,1011,0111这样移位的?
谢谢~

追答

先取反,然后移位,再取反。
~_crol_(~a,1); C语言本身就要移位的运算符不用调函数,~((~a)<<1)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-29
[ 0000 ] 1110
1111 0000
1111 1110 //这就是结果
至于结果加起来就行了。
0xfe;
第2个回答  2012-10-29
0x0e | 0xf0?

相关了解……

你可能感兴趣的内容

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