欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
關于浮點運算的一些問題
[打印本頁]
作者:
Arana
時間:
2017-5-22 18:14
標題:
關于浮點運算的一些問題
1、浮點運算就是指整數運算和實數運算吧? 2、浮點運算在單片機中怎樣進行的? 3、浮點寄存器是什么意思?自動匹配的工作寄存器組還是單片機內有專門的? 第一次發帖,希望大神門能幫我解答一下,謝謝啦
作者:
yzwzfyz
時間:
2017-5-24 01:48
本帖最后由 yzwzfyz 于 2017-5-24 11:24 編輯
樓主所提的問題,主要是對浮點數在計算機中長成什么樣了不清楚。
樓主應當知道科學計數法(除0之外)的示數方式:A.B*10^N,如:3.123456*10^8,A=1-9,B、N=任意數字。
計算機里的浮點數有許多種表示方式,但都是模仿了科學計數法。
現舉其中在單片機中最常用的一種:
用四個字節表示一個浮點數:X1、X2、X3、X4
X1是指數相當于N,稱“階碼”或指數;
X2X3X4構成底數相當于B。
符號:用底數的最高位來表示正負。
X2.7=1表示負數,X2.7=0表示正數。
如:(96H、C0H、23H、22H)中的C0H的最高位(C0H=11000000B)是1,所以是負數。
而:(96H、20H、23H、22H)中的20H的最高位(20H=00100000B)是0,則表示正數。
階碼:X1。
底數:X2X3X4的特殊規定:
無論X2.7是0是1,都默認為是1,也就是X2.7除表示符號之外,在底數中恒定認為是1。
如:(96H、C0H、23H、22H)中的底數是:C02322H
而(96H、20H、23H、22H)中的底數也是:C02322H(最高位20H=00100000B隱含是1,即為10100000B=C0H)
小數點在何處:階碼的最大值=FFH,最小為00H,就取其中值80H為小數點的位置,如此浮點數的值就為:
X2X3X4 * 2^(X1-80H-18H),注:18H=24是因為底數X2X3X4有24位。
浮點數舉例:80000000H
底數:000000H,符號=0,正數,恢復隱含1之后為:800000H
階碼:80H
浮點數值=800000H * 2^(80H-80H-18H)=0.5
浮點數舉例:80800000H
底數:800000H,符號=1,負數,恢復隱含1之后為:800000H
階碼:80H
浮點數值=-800000H * 2^(80H-80H-18H)=-0.5
浮點數舉例:9803D600H
底數:03D600H,符號=0,正數,恢復隱含1之后為:83D600H
階碼:98H
浮點數值=83D600H * 2^(98H-80H-18H)=8640000
作者:
yzwzfyz
時間:
2017-5-24 01:52
另一種浮點數表示方式:
符號用X1.7表求,而8位階碼的前7位是X1.6-X1.0,階碼的最后一位是X2.7。
底數X2X3X4的最高位仍恒默認=1。
作者:
yzwzfyz
時間:
2017-5-24 02:05
可見,浮點數的乘除還好,底數相乘除,階碼相加減。不過積商還要標準化,即必須保證底數最高位是1,否則就必須再對階(左右移底數,并用減加階碼來補正)
而浮點數的加減法,就麻煩了,必須先對階(對其中的一個數對階,使其階碼與另一個數相同),即階碼必須相同,才能做加減。其和差也要做標準化。
可以浮點數的計算的復雜程度,是非浮點數的許多倍。
知道這些后,就應該盡可能不用浮點計算,以提高程序速度,并節省空間、節省CPU時間。
但浮點計算有范圍廣的特點!
作者:
yzwzfyz
時間:
2017-5-24 02:08
關于浮點數的存放,愛放哪放哪。
所以樓主所提的:“浮點寄存器”、“工作寄存器組”等,是沒有意義的說法。
如果你將浮點數放在“大門”,就叫“大門浮點數”好了。
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1