读书人

只应用位级和逻辑运算编写一个C表达

发布时间: 2013-08-09 15:16:24 作者: rapoo

只使用位级和逻辑运算,编写一个C表达式,他等价于x==y。换句话说,当x和y相等时他将返回1,否则返回0
只能用位级运算 & | ~ ^ 和逻辑运算 || && !
如果才能做到?

[解决办法]

引用:
引用:
!((~x) & y)

void main()
{
char a =0xFF;
int b =0xFFFF;
int c = !((~a)&b);

}
这种情况怎么解决?


强制转换为无符号整数即可
[解决办法]
就是因为有隐式转换才没有执行到里面的,a先被转换成int的再跟b比较,条件不成立。

用 !(x & ~y) ……楼上已经有给出来的了。

引用:
void main()
{
char a =0xFF;
int b =0xFFFF;

while(a == b)
{
//没执行到这
}
}
这里好像不存在隐式转换啊

读书人网 >C语言

热点推荐