將浮點數指標-轉換成-整型指標,以十六進製制的格式輸出指標內容。
示例程式:
#includeint main()測試:
輸入(float)
輸出(十六進製制)
二進位制8.25
41040000
0100 0001 0000 0100 0000 0000 0000 0000
-8.25
c1040000
1100 0001 0000 0100 0000 0000 0000 0000
符號位:0為正,1為負;
指數字:移碼表示;
尾數字:隱式儲存小數點前面的1,也就是只儲存小數點後面的位
示例:十進位制:8.25
二進位制:1000.01 = 1.00001 x 2 3= 1.00001 x 2 011
符號位為:0
指數字為:3 + 127 = 130 = 1000 0010b
尾數字為:00001
最終,8.25在計算機中儲存的形式為0100 0001 0000 0100 0000 0000 0000 0000b
對比我們自己計算出的結果 與 通過計算機輸出的結果,一致:程式正確。
可以正式進行程式設計了
我們int型作為定點數的乙個容器,假設定點數32位,符號部分1位,整數部分15位,小數部分16位
分別得到浮點數的符號、整數部分與小數部分,對應到定點數的各部分。
程式:
#include#define sign_bit 0x80000000測試:#define exp_bit 0x7f800000
#define tail_bit 0x007fffff
int main()
輸入輸出(十六進製制)
輸出(二進位制)
8.25
84000
0000 0000 0000 1000 0100 0000 0000 0000 0000
-8.25
80084000
1000 0000 0000 1000 0100 0000 0000 0000 0000
按照我們前面指定的規則:定點數的符號位1位,整數字15位,小數字16位
將二進位制換算出來,答案正確。
浮點數 定點數
浮點數是表示小數的一種方法.所謂浮點就是小數點的位置不固定,與此相反有定點數,即小數點的位置固定.整數可以看做是一種特殊的定點數,即小數點在末尾.8086 8088中沒有浮點數處理指令,不過從486起,cpu內建了浮點數處理器,可以執行浮點運算.一般的浮點數有點象科學計數法,包括符號位 指數部分和尾...
定點數和浮點數 定點數和浮點數計算
這個東西其實不是很難,但是確實足夠繞的,因為從十進位制的加減乘除轉換到二進位制的加減乘除就已經很麻煩了,然後為了選拔人才,不給你二進位制,直接給你十六進製制,當然最麻煩的還是補碼和移碼,確實足夠 但是給予足夠的練習還是可以比較熟練的,公式稍後會整理到置頂的公式大全中。可以看完了以後去嘗試一下相關計算...
定點數與浮點數
1 定點數 定點數指小數點在數中的位置是固定不變的,通常有定點整數和定點小數。在對小數點位置作出選擇之後,運算中的所有數均應統一為定點整數或定點小數,在運算中不再考慮小數問題。1 定義 資料中小數點位置固定不變的數 2 種類 定點整數 3 小數點在符號位與有效位之間。注 定點數受字長的限制,超出範圍...