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不變(即運算式本身為一個值,但不改變被操作對象值)