了,在上麵的計算中,A表示10,而F表示15)
現在可以看出,所有進製換算成10進製,關鍵在於各自的權值不同。
假設有人問你,十進數1234為什麼是一千二百三十四?你儘可以給他這麼一個算式:
1234=1*10^3+2*10^2+3*10^1+4*10^0
6.2.6十六進製數的表達方法
如果不使用特殊的書寫形式,16進製數也會和10進製相混。隨便一個數:9876,就看不出它是16進製或10進製。
C,C++規定,16進製數必須以0x開頭。比如0x1表示一個16進製數。而1則表示一個十進製。另外如:0xff,0xFF,0X102A,等等。其中的x也也不區分大小寫。(注意:0x中的0是數字0,而不是字母O)
以下是一些用法示例:
inta=0x100F;
intb=0x70+a;
至此,我們學完了所有進製:10進製,8進製,16進製數的表達方式。最後一點很重要,C\/C++中,10進製數有正負之分,比如12表示正12,而-12表示負12,;但8進製和16進製隻能用達無符號的正整數,如果你在代碼中裡:-078,或者寫:-0xF2,C,C++並不把它當成一個負數。
6.2.7十六進製數在轉義符中的使用
轉義符也可以接一個16進製數來表示一個字符。如在6.2.4小節中說的'?'字符,可以有以下表達方式:
'?'\/\/直接輸入字符
'\\77'\/\/用八進製,此時可以省略開頭的0
'\\0x3F'\/\/用十六進製
請前往oop.tw閱讀本書最新內容
同樣,這一小節隻用於了解。除了空字符用八進製數'\\0'表示以外,我們很少用後兩種方法表示一個字符。
6.3十進製數轉換到二、八、十六進製數
6.3.110進製數轉換為2進製數
給你一個十進製,比如:6,如果將它轉換成二進製數呢?
10進製數轉換成二進製數,這是一個連續除2的過程:
把要轉換的數,除以2,得到商和餘數,
將商繼續除以2,直到商為0。最後將所有餘數倒序排列,得到數就是轉換結果。
聽起來有些糊塗?我們結合例子來說明。比如要轉換6為二進製數。
“把要轉換的數,除以2,得到商和餘數”。
那麼:
要轉換的數是6,6÷2,得到商是3,餘數是0。(不要告訴我你不會計算6÷3!)
“將商繼續除以2,直到商為0……”
現在商是3,還不是0,所以繼續除以2。
那就:3÷2,得到商是1,餘數是1。
“將商繼續除以2,直到商為0……”
現在商是1,還不是0,所以繼續除以2。
那就:1÷2,得到商是0,餘數是1(拿筆紙算一下,1÷2是不是商0餘1!)
“將商繼續除以2,直到商為0……最後將所有餘數倒序排列”
好極!現在商已經是0。
我們三次計算依次得到餘數分別是:0、1、1,將所有餘數倒序排列,那就是:110了!
6轉換成二進製,結果是110。
把上麵的一段改成用表格來表示,則為:
被除數計算過程商餘數
6.6\/230
3.3\/211
1.1\/201
(在計算機中,÷用\/來表示)
如果是在考試時,我們要畫這樣表還是有點費時間,所更常見的換算過程是使用下圖的連除:
(圖:1)
請大家對照圖,表,及文字說明,並且自已拿筆計算一遍如何將6轉換為二進製數。
說了半天,我們的轉換結果對嗎?二進製數110是6嗎?你已經學會如何將二進製數轉換成10進製數了,所以請現在就計算一下110換成10進製是否就是6。
6.3.210進製數轉換為8、16進製數
10進製數轉換成8進製的方法,和轉換為2進製的方法類似,唯一變化:除數由2變成8。
來看一個例子,如何將十進製數120轉換成八進製數。
用表格表示:
被除數計算過程商餘數
120.120\/8150
15.15\/817
1.1\/801
。071:為果結,製進8為換轉021
。61成變2由數除:化變一唯,似類法方的製進2為換轉和,法方的製進61成換轉數製進01
:為則製進61成換轉,021是樣同
數餘商程過算計數除被
8761/\021.021
7061/\7.7
。87:為果結,製進61為換轉021
。程過的表個兩麵上算演,式形的)1:圖(用采,紙筆拿請
換轉相互數製進六十、二4.6
。然亦之反,數製進六十為換轉能就接直,數製進二見看到做能都員序程++C,C個每,算計用不卻換轉的者二這過不。要重較比換轉相互的製進六十和製進二
。到做能就,節小一這完學要隻,樣一也們我
?呢少多是它,1111:數製進二個一看來們我先首
。51=8*1+4*1+2*1+1*1=3^2*1+2^2*1+1^2*1+0^2*1:算計樣這要還能可你
。1=0^2,2=1^2,4=2^2是次依後然,8=3^2為值權的位高最,即。1、2、4、8:,記位低往位高從是且並,值權的位一每它住記接直須必們我以所,位4才1111於由,而然
。值製進01的應對它出算快很以可都們我,數製進二的位4個一意任於對,1248住記
)分部過略間中(值的能可有所xxxx數製進二位四出列麵下
值進六十值製進十法方算計速快數製進2的位4僅
F=51=1+2+4+8=1111
E=41=0+2+4+8=0111
D=31=1+0+4+8=1011
C=21=0+0+4+8=0011
B=11=1+2+0+8=1101
A=01=0+2+0+8=0101
9=9=1+0+0+8=1001
....
1=1=1+0+0+0=1000
0=0=0+0+0+0=0000
轉要數製進二