请问:以下程序中b的结果为什么是 -5?
我是这样算的:4的二进制为00000100
~4:11111011,则变成了负数,再取反加1得10000101
(即-5),但还得与26进行”|“运算呀,想不通了:)哪位能帮忙指点一二,不胜感谢!!!
main()
{int a,b;
a=7^3; b=~4|26;
printf(“%d,%d”,a,b);}
>> 本文固定链接: http://www.vcgood.com/archives/2896
请问:以下程序中b的结果为什么是 -5?
我是这样算的:4的二进制为00000100
~4:11111011,则变成了负数,再取反加1得10000101
(即-5),但还得与26进行”|“运算呀,想不通了:)哪位能帮忙指点一二,不胜感谢!!!
main()
{int a,b;
a=7^3; b=~4|26;
printf(“%d,%d”,a,b);}
>> 本文固定链接: http://www.vcgood.com/archives/2896
你必须先 登录才能发表评论。
没有必要再和26进行’|'运算了,(~是按位取返,不是求补运算)
~4结果是11111011,
11111011这个二进制数是-5的补码形式表示