單片機浮點數的運算原理及表達方式

2021-01-09 電子發燒友
打開APP
單片機浮點數的運算原理及表達方式

發表於 2019-04-18 15:38:39

單片機一般浮點數均採用士MxC的形式來表示,其中M稱為尾數。它一般取為小數0≤M

浮點數也有各種各樣表示有符號數的方法,其中數的符號常和尾數放在一起,即把士M作為一個有符號的小數,它可以採用原碼、補碼等各種表示方法,而階碼可採用各種不同的長度,並且數的符號也可以放於各種不同的地方。所以浮點數有很多的表示方法。

四字節浮點數表示法是微機中常用的一種表示方式。浮點數總長度是32位,其中階碼8位,尾數是24位。階碼和尾數均為2的補碼形式。階碼的最大值位+127,最小值-128,這樣四字節浮點數能表示的最大值近似於l×2(的127次方)=l70×l0(的38次方),能表示的最小值近似為0.5×2(的-128次方)=1.47×10(的-39次方),這時該範圍內的數具有同樣的精度。

四字節的浮點數精度較高,接近7位十進位數,但是由於字節較多,運算速度較慢,往往不能滿足實時控制和測量的需要,並且實際使用時所需的精度一般不要求這麼高,三字節浮點數就滿足了這個要求,精度較低,但運算速度較高。浮點數總長為24位,其中階碼為7位,數符在階碼所在字節的最高位,尾數為16位,這種表示法運算速度較快需要的存儲容量較小,並且數的範圍和精度能滿足大多數應用場合的需要。下面的程序基本都採用這種表示方法。

規格化浮點數,在實際應用中,需要有一個程序來完成把一個非規格化數變規格化數的操作。在進行規格化操作時,對原碼表示的數,一般是先判斷尾數的最高位數值位是0還是1。如果是0則把尾數左移l位,階碼減1再循環判斷,如果是1,則結束操作。由於零無法規格化,一旦尾數為0,則把階碼置為最小值。如果在規格化中,階碼減1變成最小值時,不能再繼續進行規格化操作,否則發生階碼下溢出,一般稱之為左規格化操作。

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 單片機浮點數的實用快速除法介紹
    作為單片機程式設計師來說,在編寫程序時經常要檢驗程序中的浮點數運算結果是否正確,但手中又沒有合適的檢驗工具,非常麻煩。而一般單片機是沒有浮點數運算指令的,必須自行編制相應軟體。
  • 在單片機中的浮點數編程
    問題背景: 在使用8BIT單片機進行開發,不支持浮點數運算。但是開發必須用到sin,cos,arctan等浮點數函數。本文引用地址:http://www.eepw.com.cn/article/201611/318614.htm苦想了兩天,才發現,自己要當一回「計算機」。
  • 適用於高精度單片機小數計算的方法介紹
    在單片機的BCD增量算式,線性化處理等過程中,都會遇到一個共同的問題,那就是小數的運算。在單片機當中,對於小數的表現方法一般只有兩種,一種是浮點數一種是定點數。本文就將對單片機中的浮點數進行概述並對其彙編程序設計進行介紹。
  • 程式設計師必知之浮點數運算原理詳解
    隨著你經驗的增長,你肯定 想去深入了解一些常見的東西的細節,浮點數運算就是其中之一。1. 什麼是浮點數?  在計算機系統的發展過程中,曾經提出過多種方法表達實數。  【1】典型的比如相對於浮點數的定點數(Fixed Point Number)。在這種表達方式中,小數點固定的位於實數所有數字中間的某個位置。
  • 單片機復位電路原理是什麼 單片機復位電路有哪些?
    那麼問題來了,單片機為什麼需要復位電路呢?單片機復位電路原理是什麼呢?單片機復位電路有哪些種呢?本文將一一為您解答~~~本文引用地址:http://www.eepw.com.cn/article/269787.htm一、單片機復位電路原理- -簡介復位電路,與計算機的清零按鍵類似,卻又存在不同。
  • 三菱PLC浮點運算應用指令
    浮點運算應用指令能實現浮點數的轉換、比較、四則運算、開方運算、三角函數等功能,浮點運算應用指令大都為32位指令。一、二進位浮點比較與區間比較指令本文引用地址:http://www.eepw.com.cn/article/201612/331348.htm二進位浮點比較ECMP指令比較源操作數S1與源操作數S2內的32位二進位浮點數,根據大小一致比較結果,對應輸出驅動目的操作數D指定軟元件開始的連續3個位軟元件的狀態,二、二進位浮點數與十進位浮點數轉換指令二進位浮點數轉換為十進位浮點數
  • python浮點數表示專題及常見問題 - CSDN
    浮點數用來存儲計算機中的小數,與現實世界中的十進位小數不同的是,浮點數通過二進位的形式來表示一個小數。在深入了解浮點數的實現之前,先來看幾個 Python 浮點數計算有意思的例子:0.1 == 0.10000000000000000000001True0.1+0.1+0.1 == 0.3FalseIEEE 浮點數表示法這些看起來違反常識的「錯誤」並非 Python 的錯,而是由浮點數的規則所決定的,即使放到其它語言中結果也是這樣的
  • 學校裡學不到的C語言教程之6:可怕的浮點數
    所以他告訴我的知識點都是很真誠的,這其中我印象最深的就是浮點數的問題,坦率地說無論我對他們的看法如何,沒有他告訴我,恐怕其中的問題我要兩三年後才會知道。這個問題其實他說得非常的簡單:程序裡不要使用 float,要用 double。這是為什麼?我們來看一個例子:
  • php浮點數和字符串
    有關浮點數的細節1:浮點數不應直接進行大小比較!先看一個現象:可見:浮點數直接進行比較是「不可靠的」。原因是:浮點數在內存中的二進位形式(最底層的形式),是不精確的,比如:那如果需要(其實這很常見)進行浮點數比較,該怎麼辦?考慮現實應用所需的精度要求的基礎上,來講他們轉換為整數後進行比較!
  • Javascript每日一學-Javascript中關於浮點數運算的坑
    Javascript中的數字都是雙精度的浮點數。Javascript中的整數並不是一個獨立的數據類型,而是浮點數的一個子集。浮點數的坑我們直接看下面的一個例子。在瀏覽器的console控制臺上我們分別進行以下的浮點數運算。
  • 單片機最小系統組成電路及其作用
    特別注意,一定不要把單片機接到過高的電壓上,或者將電源正負極接反,很可能燒壞單片機,甚至發生爆炸。如果單片機是插在晶片插座上的,由於VCC和GND剛好在對稱的位置,插反了剛好會出現電源接反的情況,一定要注意避免。這裡補充一點,如果需要知道一種晶片使用的電源電壓,通常可以查官方給出的晶片手冊,後面會對晶片手冊進行介紹。
  • 單片機直流電機的pwm調速與控制設計
    其原理框圖如圖3:圖3控制系統原理框圖3.硬體電路設計3.1單片機最小工作系統單片機最小工作系統指單片機能正常工作的最少配置,包括電源、時鐘電路、復位電路和一塊51單片機。圖4 AT89C51(2)時鐘電路MCS-51單片機的時鐘有兩種工作方式:一種是內部振蕩方式,它是利用單片機內部的振蕩電路,產生時鐘信號,這種方式單片機的時鐘引腳上接石英晶體和振蕩電容
  • CPU與單片機的復位電路的作用及基本復位方式
    本文引用地址:http://www.eepw.com.cn/article/186718.htm無論用戶使用哪種類型的單片機,總要涉及到單片機復位電路的設計。而單片機復位電路設計的好壞,直接影響到整個系統工作的可靠性。許多用戶在設計完單片機系統,並在實驗室調試成功後,在現場卻出現了「死機」、「程序走飛」等現象,這主要是單片機的復位電路設計不可靠引起的。
  • 基於MXT8051單片機的發動機車載監控系統研究
    根據成熟的發動機控制理論,當發動機工作在較高轉速時,要求氣缸內的工作介質較早起燃才能實現較高的工作效率,而當工作在較高負載時,則需要每個工作循環燃燒更多的燃料吸入更多的氣體,可是一旦轉為從降低排放的角度來考慮的話,情況則完全相反,如果從產品可靠性出發,則又是一另番景象,從事發動機性能優化的工程師們在努力尋找某些參數的平衡點,基於發動機工作原理的複雜性,會發現可編程微控制器在這個領域有著極為廣闊的應用空間
  • 復位電路原理
    復位電路原理  復位電路工作原理如下圖所示,VCC上電時,C充電,在10K電阻上出現電壓,使得單片機復位;幾個毫秒後,C充滿,10K電阻上電流降為0,電壓也為0,使得單片機進入工作狀態。工作期間,按下S,C放電,在10K電阻上出現電壓,使得單片機復位。鬆開S,C又充電,幾個毫秒後,單片機進入工作狀態。
  • 基於51單片機的編碼解碼顯示實驗電路設計
    0 引 言在日常數字邏輯電路實驗中編碼解碼顯示實驗電路是編碼、解碼、顯示三個電路的綜合運用, 在數字邏輯實驗電路中具有重要的地位, 在實驗的過程中, 時常會出現顯示結果的抖動, 經研究出現這種現象主要原因是:編碼電路的編碼信號輸入採用手工撥盤方式
  • 關於浮點數的細節問題
    1.計算機中浮點數的構成分為三個部分:符號位,指數位和小數位。符號位決定了這個浮點數的正負,指數位和小數位決定了這個浮點數的大小。2.IEEE為了讓浮點數可以表示所有的情況,所以把浮點數分為四種情況:規格化、非規格化、無窮大和NaN規格化是為了表示浮點數的一般情況。非規格化是為了表示0和非常接近0的浮點數。
  • 基於單片機的多功能電子萬年曆設計(一)
    系統的硬體設計與電路原理  電路設計框圖  系統硬體概述  本電路是由AT89S52單片機為控制核心,具有在線編程功能、低功耗、能在3V的超低壓工作。時鐘電路由DS1302提供,它是一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,工作電壓為2.5V~5.5V。
  • MCS-51單片機試題及答案
    5.中央處理器CPU是單片機的核心,它完成_________.  6.單片機的工作過程,實際上就是_________.  7.所謂中斷源即是_________.  8.埠(或稱口)是_________.  9.異步串行近程通信時的傳送信號是_________.
  • 第19 p,了解Python中的數據類型,了解整數與浮點數
    大家好,我是楊數Tos,這是《從零基礎到大神》系列課程的第19篇文章,第二階段的課程:Python基礎知識:Python中的數據類型介紹及整數、浮點數的講解。學習本課程,建議先看一遍:【計算機基礎知識】課程。