tft每日頭條

 > 圖文

 > 十進制小數0.85轉二進制

十進制小數0.85轉二進制

圖文 更新时间:2024-09-08 20:24:30

十進制小數部分和負數轉化其他進制

十進位制小數部分轉化為二進制小數,

如果既有整數,又有小數部分,要分開計算,整數部分除2取餘逆向排列餘數〈轉化八、十六進制順便換除8、除16逆向取餘,商為0時中止計算),小數部分乘2取整順向排列取整數部分。

十進制的整數部分轉換二進制,利用除2取餘倒記法,但是十進制小數部分轉化采用乘2取整順記法〈轉化八、十六進制順便換乘8、乘16順向取整,小數部分為0時中止計算,不為0時根據2^(-n)比十進制小數多一位時中止計算)。

十進制小數部分轉成二進制,十進制的小數轉換為二進制小數,主要是利用小數部分乘2,取整數部分,直至小數點後為0,或者達到所要求的精度為止。把取出的整數部分按順向序排列起來,先取的整數作為二進制小數的高位有效位,後取的整數作為低位有效位。

例:十進制的0.125轉化成二進制。

将小數部分0.125乘2,積0.25取整數部分0。

用剩餘的小數部分0.25乘2,積0.5取整數部分0,

将剩餘的小數部分0.5乘2,積1取整數部分1。

此時,小數部分已經為0,則計算結束,0.125的二進制數将所得取整數按順序排列,得到0.001。

驗證一下是否為0.125,0 0 1*2^(-3)=0.125

如果小數部分一直不變為0,可根據精度要求中止計算。

有的小數乘2以後,小數部分一直無法得到0,如0.835乘2後小數部分就一直變不成0,這時隻需根據一定的精确度中止計算,按順向取整數,反向驗證能滿足十進位小數點位數精度要求即可,比十進制數要求位數多取一位即可,如8、16位制向小數方向再多進一位,相加不影響前面數字變化,不需要多進一位,隻需當前位2^(-n)次方小數位比十進位數多一位小數位,精度可滿足要求。8、16位制換算時8^(-n)或16^(-n)小數位比十進制多一位小數位。

對負的十進制數轉化二進制數,以十進制-17d(d表示十進制,b表示二進制)為例

十進位數17轉為二進制數

17除2商8餘1,8除2商4餘0,4除2商2餘0,2除2商1餘0,1除2商0餘1,直到商為0時中止,餘數倒排,十進制17的二進制數為10001。

十進位數一17d轉為二進制數

-17d=-10001b,将絕對值-10001補全至一個字節8位:00010001,然後取反得:11101110,加1後得:11101111,它就是-17的8位二進制轉換數(負數二進制轉換數就是轉換成二進位數,取反得到二進制補碼)。

十進制轉換成二進制的步驟為:125d(d表示十進制數)

125除以2商62餘1,

62除以2商31餘0,

31除以2商15餘1,

15除以2商7餘1,

7除以2商3餘1,

3除以2商1餘1,

1除以2商0餘1,直至商為0中止,所有餘數逆向排列,逆向順序取值,即1111101,也可用0補足8位一個字節為01111101。

下面驗證一下二進位數01111101是否為125d。

第一位為1,二位為2,三位2^2,四位2^3,每增加一位多乘以一個2。

1 2^2 2^3 2^4 2^5 2^6=125。

取數進行相加的位置為1,其它位置為0。

十進制轉換成八進制

對十進制數整數部分除以8(小數部分,利用小數部分乘8,取整數部分,直至小數點後小數部分為0,或者達到所要求的精度為止,順向取數)取每次的餘數部分,直到得到的商為0。小數部分乘以8,取出每次結果的整數部分,直到最後的小數部分為0中止計算。

125除以8商15餘5,

15除以8商1餘7,

1除以8商0餘1,直至商為0中止,所有餘數逆向排列,逆向順序取值,即175,也可用0補足8位一個字節為00000175。

下面驗證一下八進位數175是否為125d。

第一位為1,二位為8,三位8^2,四位8^3,每增加一位多乘以一個8。

5 7*8 1*8^2=125。

取數進行相加的位置為1~7,其它位置為0。

十進制轉換成十六進制

對十進制數整數部分除以16(小數部分,利用小數部分乘16,取整數部分,直至小數點後為0,或者達到所要求的精度為止,順向取數)取每次的餘數部分,直到得到的商為0。小數部分乘以16,取出每次結果的整數部分,直到最後的結果為0。

125除以16商7餘13,

7除以16商0餘7,

直至商為0中止,所有餘數逆向排列。

十六進制英文名稱:Hex number system,是計算機中數據的一種表示方法。同我們日常中的十進制表示法不一樣。它由0-9,A-F組成。與10進制的對應關系是:0-9對應0-9,A-F對應10-15,N進制的數可以用0---(N-1)的數表示,超過9的用字母A-F。B在16進制中序數為11,1~9對應1~9,A~F對應10~15。

這裡逆向順序取值,13用D表示,即7D,也可用0補足8位一個字節為0000007D。

下面驗證一下十六進位數7D是否為125d。

第一位為1,二位為16,三位16^2,四位16^3,每增加一位多乘以一個16。

13 7*16=125。

十進制小數0.85轉二進制(十進制小數部分和負數轉化其他進制)1

二進制轉化

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved