怎麼將十進位製數含小數轉化為8進製16進製制

2021-03-03 21:12:28 字數 5772 閱讀 3808

1樓:匿名使用者

整數部分可以用除8或16取餘法,如113:

113/8=14……1

14/8=1……6

1/8=0……1

所以113轉化為8進製就是161;

113/16=7……1

7/16=0……7

所以113轉化為16進製制是71。轉化為16進製制時如果餘數是10,11,12,13,14,15依次用a,b,c,d,e表示。

如何把10進製數轉分別換成8進製和16進製製數

2樓:匿名使用者

一、 常用數制及其相互轉換

在我們的日常生活中計數採用了多種記數制,比如:十進位制,六十進位制(六十秒為一分,六十分為一小時,即基數為60,運算規則是逢六十進一),……。在計算機中常用到十進位製數、二進位製數、八進位製數、十六進位制數等,下面就這幾種在計算機中常用的數制來介紹一下。

1.十進位製數

我們平時數數採用的是十進位製數,這種資料是由十個不同的數字0、1、2、3、4、5、6、7、8、9任意組合構成,其特點是逢十進一。

任何乙個十進位製數均可拆分成由各位數字與其對應的權的乘積的總和。例如:

? ?? 這裡的10為基數,各位數對應的權是以10為基數的整數次冪。為了和其它的數制區別開來,我們在十進位製數的外面加括號,且在其右下方加註10。

2.二進位製數

在計算機中,由於其物理特性(只有兩種狀態:有電、無電)的原因,所以在計算機的物理裝置中獲取、儲存、傳遞、加工資訊時只能採用二進位製數。二進位製數是由兩個數字0、1任意組合構成的,其特點是逢二進一。

例如:1001,這裡不讀一千零一,而是讀作:一零零一或么零零么。

為了與其它的數制的數區別開來,我們在二進位製數的外面加括號,且在其右下方加註2,或者在其後標b。

任何乙個二進位製數亦可拆分成由各位數字與其對應的權的乘積的總和。其整數部分的權由低向高依次是:1、2、4、8、16、32、64、128、……,其小數部分的權由高向低依次是:

0.5、0.25、0.

125、0.0625、……。

二進位製數也有其運算規則:

加法:0+0=0????0+1=1???1+0=1????1+1=10

乘法:0×0=0????0×1=0????1×0=0????1×1=1

二進位製數與十進位製數如何轉換:

(1) 二進位製數—→十進位製數

對於較小的二進位製數:

對於較大的二進位製數:

方法1:各位上的數乘權求和??例如:

(101101)2=1×25+0×24+1×23+1×22+0×21+1×20=45

(1100.1101)2=1×23+1×22+0×21+0×20+1×2-1+1×2-2+0×2-3+1×2-4=12.8125

方法2:任何乙個二進位製數可轉化成若干個100…0?的數相加的總和??例如:

(101101)2=(100000)2+(1000)2+(100)2+(1)2

而這種100…00形式的二進位製數與十進位製數有如下關聯:1後有n個0,則這個二進數所對應的十進位製數為2n。

所以:(101101)2=(100000)2+(1000)2+(100)2+(1)2=25+23+22+20=45

(2)十進位製數—→二進位製數

整數部分:整除以2取餘法。例如:75

75/2=37…1??37/2=18…1??18/2=9…0??9/2=4…1??4/2=2…0??2/2=1…0???1/2=0…1

將得到的一系列的餘數倒過來書寫就得到該數所對應的二進位製數(1001011)2

小數部分:乘以2取整法。例如:0.7

0.7×2=1.4…1??

0.4×2=0.8…0???

0.8×2=1.6…1???

0.6×2=1.2…1??

0.2×2=0.4…0

3.八進位製數

八進位製數是由0、1、2、3、4、5、6、7、8任意組合構成的,其特點是逢八進一。為了與其它的數制的數區別開來,我們在八進位製數的外面加括號,且在其右下方加註8,或者在其後標q。

八進位製數的基數是8,任何乙個八進位製數亦可拆分成由各位數字與其對應的權的乘積的總和。其整數部分的權由低向高依次是:1、8、82、83、84、85、……,其小數部分的權由高向低依次是:

8-1、8-2、8-3、8-4、……。

八進位製數與其它數制的轉換:

(1)與十進位製數的互換

八進位製數—→十進位製數

十進位製數—→八進位製數

方法均與二進位製數與十進位製數互換的方法一樣。

(2)與二進位製數的互換

八進位製數—→二進位製數

把八進位製數的每一位改成等值的三位二進位製數,即「一位變三位」。

例如:56.103q

解:?5?????6?.??1????0????3

???? ↓????↓???↓???↓???↓??????????????

???? 101??110???001??000??011

所以(56.103)8=(101110.001000011)2

二進位製數—→八進位製數

把二進位製數從小數點開始向兩邊每三位為一段(不足補0),每段改成等值的一位八進位製數即可,即「三位變一位」。

4.十六進位製數

十六進位製數是由0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f任意組合構成的,其特點是逢十六進一。為了與其它的數制的數區別開來,我們在十六進位製數的外面加括號,且在其右下方加註16,或者在其後標h。

十六進位製數的基數是16,任何乙個十六進位製數亦可拆分成由各位數字與其對應的權的乘積的總和。其整數部分的權由低向高依次是:1、16、162、163、164、165、……,其小數部分的權由高向低依次是:

16-1、16-2、16-3、16-4、……。

十六進位製數與其它數制的轉換:

(1)與十進位製數的互換

十六進位製數—→十進位製數

十進位製數—→十六進位製數

方法均與二進位製數與十進位製數互換的方法一樣。

(2)與二進位製數的互換

十六進位製數—→二進位製數

把十六進位製數的每一位改成等值的四位二進位製數,即「一位變四位」。

例如:(3ad.b8)16

解:?3????a?????d.????b?????8

???? ↓????↓????↓????↓????↓??????????????

???? 0011??1010??1101??1011??1000

所以(3ad.b8)16=(1110101101.10111)2

二進位製數—→十六進位製數

把二進位製數從小數點開始向兩邊每四位為一段(不足補0),每段改成等值的一位十六進位製數即可,即「四位變一位」。

下表中列出了一些數的

二、八、十和十六進位制形式

二進位製數 八進位製數 十進位製數 十六進位製數 二進位製數 八進位製數 十進位製數 十六進位製數

0000 0 0 0 1001 11 9 9

0001 1 1 1 1010 12 10 a

0010 2 2 2 1011 13 11 b

0011 3 3 3 1100 14 12 c

0100 4 4 4 1101 15 13 d

0101 5 5 5 1110 16 14 e

0110 6 6 6 1111 17 15 f

0111 7 7 7 10000 20 16 10

1000 10 8 8 10001 21 17 11

???二、計算機中數的表示

在計算機中所有的資料、指令以及一些符號等都是用特定的二進位制**表示的。

??? 1.數值資料的表示

我們把乙個數在計算機內被表示的二進位制形式稱為機器數,該數稱為這個機器數的真值。機器數有固定的位數,具體是多少位受到所用計算機的限制。機器數把其真值的符號數位化,通常是用規定的符號位(一般是最高位)取0或1來分別表示其值的正或負。

例如:假設機器數為8位,則其最高位是符號位,那麼在整數的表示情況下,對於00101110和10010011,其真值分別為十進位製數+46和-19。

機器數常採用原碼和補碼的形式作為其編碼方式。

(1)原碼

整數x的原碼是指:其符號位的0或1表示x的正或負,其數值部分就是x的絕對值的二進位制表示。通常用[x]原表示x的原碼。

例如:假設機器數的位數是8,那麼:[+17]原=00010001???[-39]原=10100111

注意:由於[+0]原=00000000,[-0]原=10000000,所以數0的原碼不唯一,有「正零」和「負零」之分。

(2)反碼

在反碼的表示中,正數的表示方法與原碼相同;負數的反碼是把其原碼除符號位以外的各位取反(即0變1,1變0)。通常,用[x]反表示x的反碼。

例如:[+45]反=[+45]原=00101101??[-32]原=10100000???[-32]反=11011111

(3)補碼

在補碼的表示中,正數的表示方法與原碼相同;負數的補碼在在其反碼的最低有效位上加1。通常用[x]補表示x的補碼。

例如:[+14]補=10100100???[-36]反=11011011????[-36]補=11011100

注意1:數0的補碼的表示是唯一的,即[0]補=[+0]補=[-0]補=00000000

注意2:利用公式?[x]補+[±y]補=[x±y]補??

可以把加法和減法統一成加法。(符號位和其它位上數一樣運算,如果符號位上有進製,則把這個進製的1捨去不要,即不考慮「溢位」問題)。

例如:??x=6,y=2??求x-y

解:??[x]補=00000110??????[-y]補=11111110

?????? [x-y]補=00000100

另:機器數中採用定點或浮點數的方式來表示小數!(略)

??? 2.ascii碼

計算機除了能處理數值外還能處理字元(指字母a、b、…、z、a、b、…、z,數字0、1、…、9,其它一些可列印顯示的符號如:+、-、*、/、<、>、…)。在計算機內部,這些符號也得用二進位制**來表示,目前,在國際上廣泛採用的是美國標準資訊交換**(american?

standard?code?for?

information?interechang),簡稱ascii碼。

標準的ascii碼中共有128(27)個字元,所以標準的ascii碼採用7位二進位制編碼。因為其中的字元排列是有序的,其對應的ascii碼也是相連的,所以我們只需要記幾個關鍵字元的ascii碼,其它可以推算。

『0』——48????『a』——65??????『a』——97

注:標準的ascii碼能表示的字元較少,於是在其基礎上又設計了一種擴充的ascii碼,採用的是8位二進位制編碼,可以表示256個字元。

??? 3.bcd碼

十進位製數在鍵盤輸入和列印、顯示輸出時往往是將各個數字以ascii碼來表示的。但是在計算機內運算時,是以二進位制形式進行的。為了便於轉換,設計了一些用二進位制編碼表示的十進位製數,稱為二—十進位制碼,即bcd碼(binary?

coded?decimal)。

bcd碼是用四位二進位制**來表示一位十進位製數。有多種bcd碼:8421碼、2421碼、餘3碼、格雷碼。

常用bcd碼

十進位制數字 8421碼 2421碼 餘3碼 格雷碼

0 0000 0000 0011 0000

1 0001 0001 0100 0001

2 0010 0010 0101 0011

3 0011 0011 0110 0010

4 0100 0100 0110 0010

5 0101 0101 1000 1110

6 0110 0110 1001 1010

7 0111 0111 1010 1000

8 1000 1110 1011 1100

9 1001 1111 1100 0100

注意:bcd碼表示的數形式上像二進位製數,但不是真正的二進位製數

二進位製數11011110轉化為十進位制是多少

二進位製數11011110轉化為十進位制最常用的方法是先轉化為十六進數,再轉化為十進位製數。11011110 1101 1110 8 4 0 1 16 8 4 2 0 13 16 14 222 11011110 2 0 2 1 2 1 2 0 2 1 2 1 2 1 2 1 2 0 10 1 2 1...

二進位制轉十進位制,二進位制轉化為十進位制的演算法?

有符號數的話,最高位為1 就是最左邊那個 表示負數,這時候就要按位取反再加1,得出來的二進位制正常翻譯成十進位制,然後結果就是負的那個數。無符號數,或者最高位為0的話,直接轉換就行了。二進位制轉化為十進位制的演算法?從最抄低位 最右 算起襲,位上的數字乘以本位的權重。bai,權重就du是2的第幾位的...

將十進位製數119化為二進位制等於多少

119 十進位制 2的6次方 2的5次方 2的4次方 2的2次方 2的1次方 2的0次方 1110111 二進位制 比如1110111 二進位制 111 0111 77 十六進位制 將十進位製數121轉化為二進位製數是多少?十進位製數121轉化為二進位製數是1111001十進位制整數轉換為二進位制整...