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