資料介紹
在單片機(jī)的BCD增量算式、線性化處理等過程中,都會遇到一個共同的問題,那就是小數(shù)的運算。在單片機(jī)當(dāng)中,對于小數(shù)的表現(xiàn)方法一般只有兩種,一種是浮點數(shù),一種是定點數(shù)。本文就將對單片機(jī)中的浮點數(shù)進(jìn)行概述并對其匯編程序設(shè)計進(jìn)行介紹。
浮點數(shù)結(jié)構(gòu)有其自身的優(yōu)點,其能夠以固定的字節(jié)長度保持相對精度不變,用較少的字節(jié)表示很大的數(shù)的范圍,便于存儲和運算,在處理的數(shù)據(jù)范圍較大和要求精度較高時,采用浮點數(shù)。
浮點數(shù)概念
常用科學(xué)計數(shù)法來表示一個十進(jìn)制數(shù)如:
l234.75=1.23475E3=1.23475×103(10的3次方)
在數(shù)據(jù)很大或很小時,采用科學(xué)計數(shù)法避免了在有效數(shù)字前加0來確定小數(shù)點的位置,突出了數(shù)據(jù)的有效數(shù)字的位數(shù),簡化了數(shù)據(jù)的表示,可以認(rèn)為科學(xué)計數(shù)法就是十進(jìn)制數(shù)的浮點數(shù)表示方法。
在二進(jìn)制中,也可以用類似的方法來表示一個數(shù),如:
1234.75=10011010010.11(二進(jìn)制)=0.1001101001011×211(2的11次方)
一般表達(dá)式為:
N=S×2p
在這種表示方法中,數(shù)值由4個部分組成,即尾數(shù)S及符號,階碼P及符號。
在二進(jìn)制中,通過定義相應(yīng)字節(jié)或位來表示這4部分,就形成了二進(jìn)制浮點數(shù)。二進(jìn)制浮點數(shù)可以有多種不同的表示方法,下面是一種常見的三字節(jié)浮點數(shù)的格式:
其中尾數(shù)占16位,階碼占6位,階符占1位,數(shù)符占1位。階碼通常用補碼來表示。
在這種表示方法中,小數(shù)點的實際位置要由階碼來確定,而階碼又是可變的,因此稱為浮點數(shù)。
1234.75用這種格式的浮點數(shù)表示就是:
000010111001101001011000
用十六進(jìn)制表示為:
1234.75=0B9A58H
-1234.75=4B9A58H
0.171875=043B00H
-0.171875=443B00H
三字節(jié)浮點數(shù)所能表示的最大值為:
1×263=9.22×1018
能表示的最小數(shù)的絕對值為:
0.5×2-63=5.42×10-20
其所表示的數(shù)的絕對值范圍=(5.42×10-20~9.22×1018),由此可以看到,比三字節(jié)定點數(shù)表示的數(shù)的范圍大得多。
按同樣方法可以定義一個4字節(jié)的浮點數(shù),以滿足更高精度的需要。
規(guī)格化浮點數(shù)
同一個數(shù)用浮點數(shù)表示可以是不同的,如:
1234.75=0B9A58H=0C4D2CH=0D2696H
雖然這幾種表示其數(shù)值是相同的,但其尾數(shù)的有效數(shù)字的位數(shù)不同,分別為16位、15位和14位。在運算過程中,為了最大限度地保持運算精度,應(yīng)盡量增加尾數(shù)的有效位數(shù),這就需要對浮點數(shù)進(jìn)行規(guī)格化處理。
在只考慮用二進(jìn)制原碼表示尾數(shù)時,尾數(shù)的最高位為l,則該浮點數(shù)為規(guī)格化浮點數(shù)。在規(guī)格化浮點數(shù)中,用尾數(shù)為0和最小階碼表示0,三字節(jié)規(guī)格化浮點數(shù)的0表示為410000H。
浮點數(shù)在運算之前和運算之后都要進(jìn)行規(guī)格化,規(guī)格化過程包括以下步驟:
首先判斷尾數(shù)是否為0,如果為0,規(guī)格化結(jié)果為410000H;(如果尾數(shù)不為0,判斷層數(shù)的最高位是否為1,如果不為1,尾數(shù)左移,階碼減1。)
再判斷層數(shù)的最高位是否為1,如果不為1,繼續(xù)進(jìn)行規(guī)格化操作,如果為1,則規(guī)格化結(jié)束。
通過以上的文章可以看到,浮點數(shù)結(jié)構(gòu)有著較為明顯的應(yīng)用場景。在需要處理的數(shù)據(jù)范圍較大或者對于數(shù)據(jù)的請求范圍較高時,適合使用單片機(jī)浮點數(shù)來進(jìn)行運算,浮點數(shù)能夠利用自身固定的字節(jié)長度來保持相對精度。設(shè)計者可根據(jù)自己不同的需要來進(jìn)行選擇,希望大家在閱讀過本文之后能夠有所收獲。
文章來源:網(wǎng)絡(luò)(版權(quán)歸原著作者所有)
(mbbeetchina)
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 單精度浮點數(shù)和十六進(jìn)制相互轉(zhuǎn)換例程(基于LV) 30次下載
- C浮點數(shù)與字符轉(zhuǎn)換工具 0次下載
- 定點數(shù)和浮點數(shù)在STM32單片機(jī)中使用傅里葉(FFT)變換的理解
- MCU進(jìn)行雙精度與單精度浮點數(shù)運算的誤差比較測試
- 單片機(jī)顯示浮點數(shù)
- 浮點數(shù)十六進(jìn)制轉(zhuǎn)換器應(yīng)用程序軟件免費下載 7次下載
- 單片機(jī)中的16進(jìn)制如何與浮點數(shù)進(jìn)行互換
- STC15單片機(jī)和ST7565P液晶顯示屏顯示浮點數(shù)數(shù)據(jù)的程序免費下載
- 單片機(jī)中的浮點數(shù)轉(zhuǎn)換成串口可打印格式的程序免費下載
- TMS320C6654定點和浮點數(shù)字信號處理器詳細(xì)資料概述 10次下載
- 上位機(jī)接收下位機(jī)發(fā)送浮點數(shù) 20次下載
- 單片機(jī)浮點數(shù)的快速除法 93次下載
- 基于FPGA 的單精度浮點數(shù)乘法器設(shè)計
- 新型應(yīng)用受益于浮點DSP的高精度
- 浮點數(shù)在單片機(jī)數(shù)據(jù)采集監(jiān)控系統(tǒng)中的應(yīng)用
- 一文帶你秒懂IEEE 754浮點數(shù) 8985次閱讀
- modbus浮點數(shù)怎么讀取 6575次閱讀
- 縫縫補補的浮點數(shù)進(jìn)制轉(zhuǎn)換器 1579次閱讀
- 西門子PLC讀取的儀表數(shù)據(jù)(浮點數(shù))如何轉(zhuǎn)換為整數(shù) 5756次閱讀
- PLC中浮點數(shù)的二進(jìn)制表示 5457次閱讀
- 什么是浮點數(shù) 4678次閱讀
- 如何在FPGA中正確處理浮點數(shù)運算 5141次閱讀
- 單片機(jī)浮點數(shù)的運算原理及表達(dá)方式 1.2w次閱讀
- MSC-51單片機(jī)的3字節(jié)和4字節(jié)浮點數(shù)計算程序分析 4328次閱讀
- Xilinx怎么定點數(shù)轉(zhuǎn)浮點數(shù) 3888次閱讀
- 你不得不知道的嵌入式C的高級用法 4227次閱讀
- STM32如何通過 printf 打印出浮點數(shù) 1.9w次閱讀
- modbus 如何讀取浮點數(shù) 1.4w次閱讀
- 什么是單精度和雙精度_單精度和雙精度浮點數(shù)表示方法 10.1w次閱讀
- ARM下浮點數(shù)Middle-Endian問題的處理 1565次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關(guān)電源基礎(chǔ)知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計與實現(xiàn)
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機(jī)開發(fā)板設(shè)計
- 0.70 MB | 2次下載 | 免費
- 751單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論