~按位取反_那些年错过的细节

~表示按位取反
通俗点讲,比如:

正数:
    int a = 10;
    System.out.println(~a);//-11
    //0000 0000 0000 0000 0000 0000 0000 1010   写出10的二进制
    //1111 1111 1111 1111 1111 1111 1111 0101   取反之后,最高位是1,说明是负数,需要对其取反在加一(符号位不变)
    //1000 0000 0000 0000 0000 0000 0000 1011   取反加一之后得出-11
负数:
    int a = -4;
    System.out.println(~a);//3
    //负数的过程可以仿照正数,可以自己推算
由此可以得出结论:无论正负都有 ~a = -a - 1

posted on 2021-03-02 21:40  wes0521  阅读(22)  评论(0)    收藏  举报

导航