位運算、取余取模


l  取余和取模的共同點和區別

對於整數:

相同:無論取余還是取模都分兩步:1)求整數商:c=a/b  2)計算模或余數:r=a-c*b

不同:取模在計算c值時,向0方向舍入(fix()函數)

      取余計算c時,向負無窮方向舍入(floor()函數)

7 mod 4 = 3(商 = 1 或 2,1<2,取商=1)

-7 mod 4 = 1(商 = -1 或 -2,-2<-1,取商=-2)

總結:當a、b符號一致時,結果一致;當a、b符號不同時,取余結果符號與a一致,取模結果符號與b一致

基本性質:

1)若p|(a-b),則a≡b (% p)。例如 11 ≡ 4 (% 7), 18 ≡ 4(% 7)

2)(a % p)=(b % p)意味a≡b (% p)

l  “|”邏輯或,雙目運算,對應的二進制中只要其中一個對應位為1,結果對應位為1,否則結果對應位為0;

l  位邏輯運算符:

 & 位邏輯與  | 位邏輯或  ^ 位邏輯異或  - 位邏輯反  >> 右移  << 左移

 

l  移位運算

左移運算(<<)是將一個二進制位的操作數按指定移動的位數向左移位,移出位被丟棄,右邊的空位一律補0。右移運算(>>)是將一個二進制位的操作數按指定移動的位數向右移動,移出位被丟棄,左邊移出的空位或者一律補0。

例如,設無符號短整型變量a為0111(對應二進制數為0000000100010001),

則:a<<3 結果為0888(對應二進制數為0000100010001000),a不變(即運算式本身為一個值,但不改變被操作對象值)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM