§1.2.2 各種進(jìn)制數(shù)的轉(zhuǎn)換
1.十進(jìn)制<-->二進(jìn)制
把二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù),按定義直接計(jì)算。
2.十進(jìn)制<—>十六進(jìn)制
十進(jìn)制整數(shù)轉(zhuǎn)換為十六進(jìn)制,采用除16取余法;十進(jìn)制純小數(shù)轉(zhuǎn)換為十六進(jìn)制小數(shù),采用乘16取整法。
把十六進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù),按定義直接計(jì)算。
3.二進(jìn)制〈—〉十六進(jìn)制
|
十進(jìn)制
|
二進(jìn)制
|
十六進(jìn)
|
|
十進(jìn)制
|
二進(jìn)制
|
十六進(jìn)制
|
|
0
|
0000B
|
0H
|
8
|
1000B
|
8H
|
|
|
1
|
0001B
|
01H
|
9
|
1001B
|
9H
|
|
|
2
|
0010B
|
02H
|
10
|
1010B
|
0AH
|
|
|
3
|
0011B
|
03H
|
11
|
1011B
|
0BH
|
|
|
4
|
0100B
|
04H
|
12
|
1100B
|
0CH
|
|
|
5
|
0101B
|
05H
|
13
|
1101B
|
0DH
|
|
|
6
|
0110B
|
06H
|
14
|
1110B
|
0EH
|
|
|
7
|
0111B
|
07H
|
15
|
1111B
|
0FH
|
二進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù),從小數(shù)點(diǎn)開(kāi)始,向左右兩邊,把二進(jìn)制數(shù)分為每四位一組(不足四位以0補(bǔ)足),寫(xiě)出每組對(duì)應(yīng)的十六進(jìn)制數(shù)。
十六進(jìn)制轉(zhuǎn)換為二進(jìn)制,把十六進(jìn)制數(shù)的各位數(shù)字用四位二進(jìn)制替換即可。
§1.2.3 帶符號(hào)數(shù)的編碼表示方法
一個(gè)帶符號(hào)的數(shù)有"符號(hào)"和"數(shù)值"兩部分。在計(jì)算機(jī)中,把數(shù)的符號(hào)也用編碼表示,通常,將一個(gè)二進(jìn)制數(shù)碼的最高位作為符號(hào)位,其余位表示數(shù)值。
S 數(shù)值位 符號(hào)位S=0表示正數(shù),S=1表示負(fù)數(shù)。這種符號(hào)被數(shù)值化了的二進(jìn)制數(shù)稱為機(jī)器數(shù)(數(shù)在機(jī)器中的表達(dá)),而它的數(shù)值
稱為該機(jī)器數(shù)的真值。
"數(shù)值位"部分可以有"原碼"、"反碼"、"補(bǔ)碼"三種表示方法,計(jì)算機(jī)中一般用補(bǔ)碼表示。
1、 原碼表示
在計(jì)算機(jī)中,把數(shù)的符號(hào)也用數(shù)碼表示,通常做法是將一個(gè)二進(jìn)制數(shù)碼的最高位作為符號(hào)位,規(guī)定0表示正號(hào),1表示負(fù)號(hào),剩余位作為數(shù)值部分,這種表示法稱為原碼表示法。例
2、 反碼表示
正數(shù)的反碼與原碼相同;負(fù)數(shù)的反碼,在原碼的基礎(chǔ)上,符號(hào)位不變,數(shù)值位按位取反。
3、 補(bǔ)碼表示
正數(shù)的補(bǔ)碼與原碼相同;負(fù)數(shù)的反碼,在反碼的基礎(chǔ)上,最低位加1。
4、 補(bǔ)碼的特點(diǎn)
(1)[+0]補(bǔ)=[-0]補(bǔ)= 00000000B,即0的編碼方式只有一種(原碼和反碼中,0的編碼方式有兩中)。
(2) 兩數(shù)相減,可以轉(zhuǎn)換為兩數(shù)相加運(yùn)算。
5、 二進(jìn)制數(shù)的位數(shù)在計(jì)算機(jī)中,通常以8、16、32、64位二進(jìn)制表示一個(gè)數(shù)。
11111111B和1111111111111111B的真值相同(-1),僅僅是表達(dá)的二進(jìn)制位數(shù)不同。在運(yùn)算過(guò)程中,有時(shí)需要把一個(gè)數(shù)的8位表
達(dá)擴(kuò)展為16位表達(dá),或者把16位擴(kuò)展為32位,擴(kuò)展的方法是符號(hào)擴(kuò)展。
注意:在計(jì)算機(jī)中,一個(gè)數(shù)的位數(shù)總是指其二進(jìn)制位數(shù)。
§1.2.4 實(shí)數(shù)的編碼表示方法
實(shí)數(shù)有兩種表示方法:"定點(diǎn)表示法"和"浮點(diǎn)表示法"。在微機(jī)中,一般使用浮點(diǎn)表示法,因此,實(shí)數(shù)運(yùn)算又稱為浮點(diǎn)運(yùn)算。
1、 定點(diǎn)表示法
小數(shù)點(diǎn)在機(jī)器數(shù)中的位置固定不變,這樣的數(shù)稱為定點(diǎn)數(shù)。 原則上講,小數(shù)點(diǎn)的位置可以任意指定,例如,在16位機(jī)器數(shù)中,用高10位表示整數(shù),用低6位表示尾數(shù),小數(shù)點(diǎn)固定在第六位和第七位之間(未表示出來(lái))。但為了方便,總是把小數(shù)點(diǎn)規(guī)定在數(shù)的最前面或數(shù)的最后面,即把所有數(shù)均化為純小數(shù)或純整數(shù)來(lái)進(jìn)行運(yùn)算?!?/p>
2、 浮點(diǎn)表示法
浮點(diǎn)表示法,就是小數(shù)點(diǎn)在數(shù)中的位置是浮動(dòng)的,這樣的數(shù)稱為浮點(diǎn)數(shù)。
在浮點(diǎn)表示時(shí),計(jì)算機(jī)把任何一個(gè)二進(jìn)制數(shù)分成階碼和尾數(shù)兩部分。
因?yàn)槎M(jìn)制數(shù)可寫(xiě)為如下一般形式:
N=±S.2±J
其中,J稱為階碼(整數(shù)),2為階碼的底,S為尾數(shù)(純小數(shù))。
在這種表示方法中,二進(jìn)制小數(shù)點(diǎn)的位置隨階碼移動(dòng),因此稱為"浮點(diǎn)表示"。
設(shè)一臺(tái)機(jī)器中,以16位機(jī)器數(shù)(bit15~bit0)表示實(shí)數(shù),階符、數(shù)符各占一位,階碼占5位,尾數(shù)占9位,該機(jī)器的浮點(diǎn)數(shù)格式:
注意:在微機(jī)中,使用32、64、80位來(lái)表示一個(gè)實(shí)數(shù),且編碼方法與上述原理不同。
R=±1.M×2N,1為整數(shù),M為尾數(shù),N為指數(shù) 以32位實(shí)數(shù)為例。S(31)指數(shù)N(30~23),8位尾數(shù)M(BIT22~BIT0),23位
表示的實(shí)數(shù)值R=±1.M×2(N-127)
整數(shù)部分1是固定的,未在編碼中表示出來(lái)。
指數(shù)部分減去一個(gè)值,是為了避免出現(xiàn)負(fù)值。
