位運算 按位取反是怎麼算出來的

vim te.cvim

# include <stdio.h>ide


int main(void)spa

{orm

        int i = 0;blog

        for(i=0;i<10;i++)get

        {it

                printf("\t~%d : %d\n",i,~i);io

        }table


        return 0;class

}

——————

gcc te.c

./a.out

        ~0 : -1

        ~1 : -2

        ~2 : -3

        ~3 : -4

        ~4 : -5

        ~5 : -6

        ~6 : -7

        ~7 : -8

        ~8 : -9

        ~9 : -10


___________________________________

1. 3的反碼

數字: 3

二進制表示(正數的反碼等於原碼):

    0000 0011

取反

    1111 1100

取原碼(上面是反碼錶示):首位不變,取反碼,末尾加1。

    1000 0100

數字:3 取反 即爲: -4



2. 7的反碼

數字: 7

二進制表示(反碼):

    0000 0111

取反

    1111 1000

取原碼(上面是反碼錶示):首位不變,取反碼,末尾加1。

    1000 1000

數字:3 取反 即爲: -8



wKiom1YbpuWiRQ3yAABm5lAGjro733.jpg

相關文章
相關標籤/搜索