程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言問答 >> C語言小問題44

C語言小問題44

編輯:C語言問答

C語言小問題44

請讀程序片段:
unsigned t=129;
t=t^00;
printf("%d,%o\n",t,t);
以上程序片段的輸出結果是,為什麼呢??

最佳回答:

129,201

補充:

因為129的2進制編碼是00000000 10000001

而0的二進制編碼是     00000000   00000000

他們之間取異或,         00000000   10000001   對應位上的數相同為0,不同為1

所以用%d輸出時還是他本身,沒有變

而用%o輸出時就是把129轉換成8進制數輸出

129÷8=16余數是1

16÷8=2   余數是0

2÷8=0     余數是2

反過來念余數就是它的8進制數了,即201.

故輸出是:129 ,201

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved