C语言问题求详解

C语言问题求详解2&&2与2&2有什么区别?
6.3/3=2.1还是2?
谢谢大神

2&&2与2&2有什么区别?
&&是逻辑与运算符,对于a&&b,当a和b都是非0时,a&&b返回1,否则返回0,即&&只返回1(代表真)或0(代表假),且&&是短路运算符,当a为0时,不再执行表达式b。而&是按位与运算符,对于a&b,每次都要执行表达式a与表达式b,且a&b的结果是由按位运算计算后确定的,不只有0和1。对于对应位置的比特位1&1=1,1&0=0,0&1=0,
因此,2&&2的结果是1,2&2的结果是2。
计算2&2的过程如下:
00...010(2的2进制表示)
2&2=00...010&00...010=00...010(等于2)

6.3/3=2.1还是2?
对于/运算符,如果计算的两个数都是整数,则进行整除,如果至少有一个是浮点数,则进行小数除法,因此6.3/3的结果是2.1追问

3&5等于多少

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-09-19
2&&2是逻辑与运算,值为真(1)
2&2是按位与运算,值是一个整数(2)
6.3/3=2.1,实数与整数运算时,先将整数自动转换为实数,运算结果也是一个实数。追问

3&0.5等于多少

追答

位运算操作符只能应用于整数类型

第2个回答  2017-09-19
6.3 是浮点数,所以是 2.1

~
~
~
相似回答