回覆列表
  • 1 # 使用者2520218391909

    例題1: —12.5 1. 整數部分12,二進位制為1100; 小數部分0.5, 二進位制是.1,先把他們連起來,從第一個1數起取24位(後面補0): 1100.10000000000000000000 這部分是有效數字。(把小數點前後兩部分連起來再取掉頭前的1,就是尾數) 2. 把小數點移到第一個1的後面,需要左移3位, 加上偏移量127(實際偏移的位數加上偏移量127):127+3=130,二進位制是10000010,這是階碼。 3. -12.5是負數,所以符號位是1。把符號位,階碼和尾數連起來。注意,尾數的第一位總是1,所以規定不存這一位的1,只取後23位: 1 10000010 10010000000000000000000 把這32位按8位一節整理一下,得: 11000001 01001000 00000000 00000000 就是十六進位制的 C1480000. 練習:(-38.57)十進位制=(-10 0110. 1001 0001 1110 1…)二進位制 =(-1. 0011 0100 1000 1111 01…)二進位制×25 =(1 10000100 00110100100011110101110)單精度浮點數 例題2: 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. 練習:(69.34)十進位制=(0100 0101. 0101 0111 0001 0100…)二進位制 =(1. 0001 0101 0101 1100 0101 00)二進位制 ×26 =(0 10000101 00010101010111000101000)單精度浮點數 注意:如果只有小數部分,那麼需要右移小數點. 比如右移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。

  • 中秋節和大豐收的關聯?
  • 水滸傳第二十三到三十一回概括?