首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言問答

C語言位運算異或題解析:129 ^ 0 輸出十進制與八進制

     編輯:C 語言問答

程序片段

unsigned t = 129;
t = t ^ 00;      // 00 是八進制字面量 = 十進制 0
printf("%d,%o\n", t, t);

逐步計算

  1. 00 是八進制字面量,值為 0。
  2. t ^ 0:異或運算規則 — 相同為 0,不同為 1。
    任何數 ^ 0 = 自身不變。
    所以 t 仍為 129。
  3. printf("%d,%o\n", 129, 129):
    • %d 輸出十進制:129。
    • %o 輸出八進制:
      129 ÷ 8 = 16 餘 1
      16 ÷ 8 = 2 餘 0
      2 ÷ 8 = 0 餘 2
      倒序讀餘數:201 (八進制)。

最終輸出

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

位運算是嵌入式、系統編程、演算法優化的基石,熟練掌握異或、與、或、取反、移位及其組合技巧。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved