#include <stdio.h>
int main() {
int i = 0;
int n = ~i;
printf("%d\n", n); // 輸出 -1
return 0;
}
假設 32 位 int:
0 (十進制) = 00000000 00000000 00000000 00000000 (二進制)
~0 = 11111111 11111111 11111111 11111111 (按位取反)
在二進制補碼表示中,全 1 位模式對應十進制 -1。
1000...0001(符號位 1,數值 1)1111...11101111...1111 = -1對於任意有符號整數 x,~x = -x - 1。例如 ~5 = -6,~-1 = 0。此恆等式常用於位運算技巧與邊界條件處理。