一致性Hash的原理與實現
算數操作符:+ - * / %
移位操作符:>> <<
位操作符: & ^ |
賦值操作符:= += -= *= /= &= ^= |= >>= <<=
單目操作符:
! 邏輯反操作
- 負值
+ 正值
& 取地址
sizeof 運算元的型別長度(以位元組為單位)
~ 對一個數的二進位制按位取反
-- 前置、後置--
++ 前置、後置++
* 間接訪問操作符(解引用操作符)
(型別) 強制型別轉換
~:int a=0; ~:按(二進位制位)取反 00000000 00000000 00000000 00000000 正數:原碼,反碼,補碼一樣
int b=~a; 11111111 1111111 11111111 11111111 負數:計算機中儲存的負數為補碼
printf("%d",b)——>-1 我們使用的,列印的是這個數的原碼
原碼(號位不變,其他位按位取反)——>反碼(反碼+1)——>補碼
補碼-1——>反碼:11111111 11111111 11111111 11111110
補碼符號位不變,其他位按位取反得到原碼:10000000 00000000 00000000 00000001 ————>-1
++: (--一樣的用法)
int main()
{
int a=10; int a=10;
int b=a++;(後置++)——>先把a的值付給b, a再++ int b=++a;(前置++)——>a先++,在把 a的值付給b
}
(型別):強制型別轉換
int a=3.14;(會報警告——>從double轉換到int可能丟失資料)
int a=(int)3.14; (把3.14強制轉換為int型別)
關係操作符:
>
>=
<
<=
!= 用於測試“不相等”
== 用於測試“相等”
邏輯操作符:
&& 邏輯與 (並且) int a=3; int a=0;
|| 邏輯或 (或者) int b=5; int b=5;
int c=a&&b; ——>1(a為真並且b為真)否則為假0) int c=a||b;——>1(a為真或者b為真)都為假則為假0) 條件操作符: exp1?exp2:exp3 (如果表示式1的結果為真,執行表示式2,為假則執行表示式3) int main() { int a=10; int b=20; int max=0; max=(a>b?a:b); //將a和b中的較大值賦值給max } 逗號表示式: exp1,exp2,exp3……expN 下標引用,函式呼叫和結構成員: 【】 () . -> int main() int main() int arr[10]={0}; int a=10; arr[4]; //下標引用操作符【】 int b=20; int sum=Add(a,b); //函式呼叫操作符 ()