unsigned t = 129;
t = t ^ 00; // 00 是八進制字面量 = 十進制 0
printf("%d,%o\n", t, t);
00 是八進制字面量,值為 0。t ^ 0:異或運算規則 — 相同為 0,不同為 1。t 仍為 129。printf("%d,%o\n", 129, 129):
%d 輸出十進制:129。%o 輸出八進制:129,201
| 概念 | 說明 | 示例 |
|---|---|---|
| 八進制字面量 | 以 0 開頭的整數常量 | 010 = 8, 0777 = 511 |
| 異或 (^) 性質 | 交換律、結合律、x^x=0、x^0=x、x^y^y=x | 交換變量 a^=b^=a^=b、簡單加密、校驗碼 |
| 無符號整數輸出 | %u 十進制、%o 八進制、%x/%X 十六進制 | 負數轉無符號按補碼解讀,%o 同理 |
#include
int main() {
unsigned t = 129;
t ^= 00;
printf("十進制: %u\n八進制: %o\n十六進制: %x\n", t, t, t);
return 0;
}
// 輸出:
// 十進制: 129
// 八進制: 201
// 十六進制: 81
位運算是嵌入式、系統編程、演算法優化的基石,熟練掌握異或、與、或、取反、移位及其組合技巧。