首页 > 用户发贴区 > 编程问题提问区 > 位或运算问题
2008
11-07

请问:以下程序中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);}


位或运算问题》有 1 条评论

  1. Perfect 说:

    没有必要再和26进行’|'运算了,(~是按位取返,不是求补运算)

    ~4结果是11111011,

    11111011这个二进制数是-5的补码形式表示

     

留下一个回复