1樓:解騫
29.86d≈11101.11011100001010001111b=1.110111011100001010001111×2^4b
因此階為4,尾數(24位)為110111011100001010001111
不過,你是否弄錯了。ieee754標準中尾數應該只有23位啊怎麼會使24位?
我還是按ieee754標準回答吧。畢竟這個是標準啊
階碼為 127+4=131d=10000011b
尾數(23位)為11011101110000101000111
該數為正數,符號位為0
所以29.86d對於的單精度浮點數為0 10000011 11011101110000101000111b
即0100,0001,1110,1110,1110,0001,0100,0111b=41eee147h
2樓:金色潛鳥
十進位制 數表示為 二進位制32位浮點數,即 按 ieee-754 標準 存放 float 型資料。
可以用 union 方式 按位元組讀出來。c 程式如下:
#include
union uu u;
int main()
printf("\n");
for (i=3;i>=0;i--)
return 0;
} 得:
16進製制: 41eee148
2進製: 01000001 11101110 11100001 01001000
求十進位製數29.86的二進位制浮點數表示,尾數16為階碼8位。主要是想知道階碼和尾數的意思是什麼 15
3樓:匿名使用者
29.86 = 0.2986 * 10^2,這裡尾數為0.2986,階碼為2.
那二進位制直接轉化成小數乘2的n次方就ok。
誰可以幫我解決下面這十進位制轉換成二進位制定點數和浮點數的問題
4樓:通訊工程錢秋月
把十進位制的29.86表示成二進位制的浮點數,尾數24位,階碼8位
5樓:手機使用者
(1100101.101)2的等值十進位制
6樓:修羅犬夜
正的54為
000110110
所以-54為
-000110110
補碼形式為
111001010
而你說的-01100100十進位制其實是
-100
7樓:球球
110是6的二進位制表示
浮點數的二進位制表示
8樓:
浮點數的二進位制,由於整數和小數的轉換方法不同,所以先將浮點數的整數部分和小數部分分別轉換後,再加以合併。
1、浮點數整數轉換為二進位制整數採用"除2取餘,逆序排列"法。用2去除浮點數整數,可以得到乙個商和餘數;如此進行,直到商為零時為止,然後把先得到的餘數作為二進位製數的低位有效位,後得到的餘數作為二進位製數的高位有效位,依次排列起來。
2、浮點數小數轉換為二進位制小數採用"乘2取整,順序排列"法。用2乘浮點數小數,可以得到積,將積的整數部分取出,如此直到積中的小數部分為零,或者達到所要求的精度為止。然後把取出的整數部分按順序排列起來,先取的整數作為二進位制小數的高位有效位,後取的整數作為低位有效位。
9樓:匿名使用者
整數怎樣轉2進製,小數怎樣轉2進製就不說了。
12.5:
1. 整數部分12,二進位制為1100; 小數部分0.5, 二進位制是.1,先把他們連起來,從第乙個1數起取24位(後面補0):
1100.10000000000000000000
這部分是有效數字。(把小數點前後兩部分連起來再取掉頭前的1,就是尾數)
2. 把小數點移到第乙個1的後面,需要左移3位, 加上偏移量127:127+3=130,二進位制是10000010,這是階碼。
3. -12.5是負數,所以符號位是1。把符號位,階碼和尾數連起來。注意,尾數的第一位總是1,所以規定不存這一位的1,只取後23位:
1 10000010 10010000000000000000000
把這32位按8位一節整理一下,得:
11000001 01001000 00000000 00000000
就是十六進位制的 c1480000.
2.025675
1. 整數部分2,二進位制為10; 小數部分0.025675, 二進位制是.0000011010010010101001,先把他們連起來,從第乙個1數起取24位(後面補0):
10.0000011010010010101001
這部分是有效數字。把小數點前後兩部分連起來再取掉頭前的1,就是尾數: 00000011010010010101001
2. 把小數點移到第乙個1的後面,左移了1位, 加上偏移量127:127+1=128,二進位制是10000000,這是階碼。
3. 2.025675是正數,所以符號位是0。把符號位,階碼和尾數連起來:
0 10000000 00000011010010010101001
把這32位按8位一節整理一下,得:
01000000 00000001 10100100 10101001
就是十六進位制的 4001a4a9.
-1.99744
還需要詳細說嗎?
如果只有小數部分,那麼需要右移小數點. 比如右移3位才能放到第乙個1的後面, 階碼就是127-3=124.
補充乙個浮點二進位製數手工轉換成十進位製數的例子:
假設浮點二進位製數是 1011 1101 0100 0000 0000 0000 0000 0000
按1,8,23位分成三段:
1 01111010 10000000000000000000000
最後一段是尾數。前面加上"1.", 就是 1.10000000000000000000000
下面確定小數點位置。階碼是01111010,加上00000101才是01111111(127),
所以他減去127的偏移量得-5。(或者化成十進位制得122,122-127=-5)。
因此尾數1.10(後面的0不寫了)是小數點右移5位的結果。要復原它就要左移5位小數點,得0.0000110, 即十進位制的0.046875
最後是符號:1代表負數,所以最後的結果是 -0.046875
還要注意其他機器的浮點數表示方法可能與此不同. 不能任意移植.
設浮點數階碼為8位(含1位階符),用移碼表示,尾數為24位(含1位數符),用補碼規格化表示,則對應
10樓:匿名使用者
原碼 階碼 尾數
最小正數 11...1 0.10...0 (2^(-(2^7-1)))(2^(-1))
最大正數 01…1, 0.11…1 (2^(2^7-1))(1-2^(-23))
最大負數 11…1, 1.10…0 (2^(-(2^7-1)))(-2^(-1))
最小負數 01…1, 1.11…1 (2^(2^7-1))(-(1-2^(-23)))
補碼最小正數 10...0 0.10...0 (2^(-2^7))(2^(-1))
最大正數 01…1, 0.11…1 (2^(2^7-1))(1-2^(-23))
最大負數 10…0, 1.10…0 (2^(-2^7))(-2^(-1))
最小負數 01…1, 1.00…0 (2^(2^7-1))(-1)
分兒給我吧!!!
設浮點數階碼為8位(含1位階符),尾數為24位(含1位數符),則32位二進位制補碼浮點規格化數對應的
11樓:匿名使用者
首先將27/64轉換成二進位制小數並規格化(小數點後第一位必須為1)0.011011=0.11011*2^(-1).
其次分析浮點數表示形式,階碼3位補碼(含1位階符),尾數9位補碼(含1位數符).
將二進位制小數的階碼和尾數分開,階碼為-1,尾數為0.11011,同時按照浮點數表示形式轉換成補碼,階碼111,尾數011011000,階碼和尾數的第一位分別為符號位.
最後將階碼和尾數組合起來,即111'011011000.
如果是-27/64,則答案是111'100101000
二進位制轉十進位制,二進位制轉化為十進位制的演算法?
有符號數的話,最高位為1 就是最左邊那個 表示負數,這時候就要按位取反再加1,得出來的二進位制正常翻譯成十進位制,然後結果就是負的那個數。無符號數,或者最高位為0的話,直接轉換就行了。二進位制轉化為十進位制的演算法?從最抄低位 最右 算起襲,位上的數字乘以本位的權重。bai,權重就du是2的第幾位的...
二進位制如何轉化為十進位制?二進位制怎樣轉換為十進位制?
二進位制是一種由0和1組成的數字系統,而十進位制是一種由0到9這10個數字組成的數字系統。將乙個二進位製數轉化為十進位制,可以使用以下方法 從二進位製數的最右邊 即最低位 開始,將每一位的值乘以2的冪,冪的指數從0開始逐次增加1。將每一位的乘積相加,得到最終的十進位製數。例如,將二進位製數10110...
二進位製數對應的十進位製數是多少,二進位製數1010101對應的十進位製數是多少
寫出二進位制每位上的基數就可以計算了 二進位制基數寫法 個位1,小數點左邊 高位 低位 2,小數點右邊 后位 前位 2 按順序寫出1010.101b對應各位 8 4 2 1.1 2 1 4 1 8 將要轉換的數按位對齊寫在下面一行 1 0 1 0.1 0 1 觀察這個數 這個數包含1個8,1個2,1...