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