天天看點

算法子產品學習之位運算

這裡記錄幾個位運算,防止自己忘記

1.a^b--------無進位相加,跟我們平時加法一樣,隻不過這個不會有進位資訊

比如:6^5---->00000…00000000110

--------------------00000…00000000101

----------------- = 00000…00000000011 也就是3

所有就有:0^a=a ; a^a=0

2.a & ((~a) + 1) --------把一個int類型的數,提取出其二進制中最右側的1來

比如:6------------->00000…00000000110 要把6的二進制中最右側的1提取出來

先将6取反得到~6->11111…1111111111001

在将~6加1---------->11111…1111111111001

±------------------------0000…00000000001

------------------------=11111…1111111111010

然後再跟6做與運算----->11111…1111111111010

------------------------------->00000…00000000110

-------------------------------=000000…00000000010

3.num%a(a是2的次方) 等同于num&(a-1)

繼續閱讀