最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

DSP中浮點轉(zhuǎn)定點運算--浮點數(shù)的存儲格式

 更新時間:2016年06月17日 09:53:22   作者:ganxingming  
本文主要介紹DSP中浮點數(shù)的存儲格式,很值得學(xué)習(xí)一下,需要的朋友可以參考一下。

二:浮點數(shù)的存儲格式

2.1 IEEE floating point standard

  上面我們說了,浮點數(shù)的小數(shù)點是不固定的,如果每個人都按照自己的愛好存儲在電腦里,那不就亂套了嗎?那么怎么在計算機(jī)中存儲這種類型的數(shù)字呢?象這類古老的問題前人早都為我們做好了相應(yīng)的規(guī)范,無規(guī)矩不成方圓嗎。我們平時所說的浮點數(shù)的存儲規(guī)范,就是由IEEE指定的,具體的規(guī)范文件是:IEEE Standard 754 for Binary Floating-Point Arithmetic。大家可以很容易的從網(wǎng)絡(luò)上下載到這篇文檔。

  在c語言中,單精度(float)數(shù)據(jù)類型為32bits,具體的如下圖所示:

http://img.jbzj.com/file_images/article/201606/2016617102352889.png

整個32bits分三部分,即

  Sign:符號位,1 bit,0為正,1為負(fù);

  Exponent(bias):指數(shù)部分,8 bits,存儲格式為移碼存儲(后面還會說明),偏移量為127;

  Mantissa(fraction):尾數(shù)部分。

  對應(yīng)的雙精度(double)類型的格式為:

http://img.jbzj.com/file_images/article/201606/2016617102402031.png

同樣,64位也被分為了三部分,對照單精度,不用我說就可以理解各個部分的含義了吧?

  是不是有點迷糊了,不要怕,理論這個東西最能忽悠人了,看起來很高深,其實也就是個屁大的事,舉個例子就很容易明白了。

舉例說明,如3.24x103,則對應(yīng)的部分為,Sign為0,3為指數(shù)部分(注意計算機(jī)里面存儲的不是3,這里僅僅為了說明),3.24為尾數(shù)。我們知道,計算機(jī)“笨”的要死,只認(rèn)識0和1,那么到底一個浮點數(shù)值在計算機(jī)存儲介質(zhì)中是如何存儲的呢?

例如,我們要想偷窺浮點類型的值4.25在計算機(jī)硬盤中存儲的廬山真面目,請跟我來:首先把4.25轉(zhuǎn)換成二進(jìn)制的表達(dá)方式,即100.01,在詳細(xì)點,變成1.0001x22,好了,對號入座把。

Sign=0;

Exponent(bias)=2+127=129 (偏移量為127,就是直接加上個127了);

Mantissa=1.0001-1.0=0001(規(guī)格化后,小數(shù)點前總是整數(shù)1,全世界人都知道前面是1不是0,所以省略不寫了,即尾數(shù)部分不包括整數(shù)部分;當(dāng)別人問你,為什么23 bit的尾數(shù)部分可以表示24位的精度,知道怎么回答了吧。 靠,什么,沒有看懂,再仔細(xì)讀兩便就知道了)。

 http://img.jbzj.com/file_images/article/201606/2016617102409132.png

對照上面的圖示,相信你已經(jīng)看明白了吧?相信你的智商。為了加深認(rèn)識,再來一個。如果給定你一個二進(jìn)制數(shù)字串,01000000100010000000000000000000,并告訴你這是一個float類型的值,讓你說出它是老幾,知道怎么算了吧?如果不知道,看下面的圖,我就不廢話解釋了。

http://img.jbzj.com/file_images/article/201606/2016617102421605.png

2.2深入理解浮點存儲格式

為了更深入的理解浮點數(shù)的格式。我們使用C語言來做一件事。在C語言的世界里,強(qiáng)制類型轉(zhuǎn)換,大家應(yīng)該都很熟悉了。例如:

復(fù)制代碼 代碼如下:

float f=4.6;

int i;

i = (int)(f+0.5); // i=5

..

下面我們不使用強(qiáng)制類型轉(zhuǎn)化,我們自己來計算f轉(zhuǎn)換成整形應(yīng)該等于幾?

把主要代碼帖出來,如下:

復(fù)制代碼 代碼如下:
//取23+1位的尾數(shù)部分

int ival= ((*(int *)(&fval)) & 0x07fffff) | 0x800000;

// 提取指數(shù)部分

int exponent = 150 - (((*(int *)(&fval)) >> 23) & 0xff);

if (exponent < 0)

ival = (ival<< -exponent);

else

ival = (ival >> exponent);

// 如果小于0,則將結(jié)果取反

if ((*(int *)&fval) & 0x80000000)

ival = -ival;

好好琢磨琢磨吧,看明白了,就說明你基本明白了浮點數(shù)的存儲格式,如果沒有看明白,接著看,知道明白為止。

以上就是本文的全部內(nèi)容,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺析C++中strlen函數(shù)的使用與模擬實現(xiàn)strlen的方法

    淺析C++中strlen函數(shù)的使用與模擬實現(xiàn)strlen的方法

    這篇文章主要介紹了strlen函數(shù)的使用與模擬實現(xiàn)strlen的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • C/C++實現(xiàn)發(fā)送與接收HTTP/S請求的示例代碼

    C/C++實現(xiàn)發(fā)送與接收HTTP/S請求的示例代碼

    HTTP(Hypertext Transfer Protocol)是一種用于傳輸超文本的協(xié)議,它是一種無狀態(tài)的、應(yīng)用層的協(xié)議,用于在計算機(jī)之間傳輸超文本文檔,通常在 Web 瀏覽器和 Web 服務(wù)器之間進(jìn)行數(shù)據(jù)通信,本文給大家介紹了C/C++發(fā)送與接收HTTP/S請求,需要的朋友可以參考下
    2023-11-11
  • C++ 內(nèi)存管理原理分析

    C++ 內(nèi)存管理原理分析

    本章主要介紹C++的內(nèi)存管理,以C++的內(nèi)存分布作為引入,介紹C++不同于C語言的內(nèi)存管理方式(new delete對比 malloc free),最后為了加深讀者的理解,會介紹new和delete的底層實現(xiàn)原理
    2021-11-11
  • C++實現(xiàn)類似延時停頓的打字效果

    C++實現(xiàn)類似延時停頓的打字效果

    這篇文章主要介紹的是使用C++實現(xiàn)類似延時停頓的打字效果的代碼,非常的簡單,推薦給大家,有需要的小伙伴可以參考下。
    2015-03-03
  • 手把手教你用C語言實現(xiàn)三子棋

    手把手教你用C語言實現(xiàn)三子棋

    三子棋是黑白棋的一種。三子棋是一種民間傳統(tǒng)游戲,又叫九宮棋、圈圈叉叉、一條龍、井字棋等。這篇文章就教你如何用C語言實現(xiàn)三子棋的功能
    2021-08-08
  • C++利用鏈表實現(xiàn)圖書信息管理系統(tǒng)

    C++利用鏈表實現(xiàn)圖書信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++利用鏈表實現(xiàn)圖書信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 深入解析int(*p)[]和int(**p)[]

    深入解析int(*p)[]和int(**p)[]

    以下是對int(*p)[]和int(**p)[]的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以參考下
    2013-07-07
  • 詳解C語言如何實現(xiàn)配置文件的讀寫

    詳解C語言如何實現(xiàn)配置文件的讀寫

    這篇文章主要為大家詳細(xì)介紹了如何使用C語言實現(xiàn)配置文件的讀寫,包括定義全局宏、公用函數(shù)、比較字符串等功能,需要的可以參考一下
    2024-11-11
  • C++數(shù)組指針和二維數(shù)組詳情

    C++數(shù)組指針和二維數(shù)組詳情

    這篇文章主要介紹了C++數(shù)組指針和二維數(shù)組,指針數(shù)組和二維數(shù)組在應(yīng)用中常用于函數(shù)傳參,下面我們就來看看指針數(shù)組和二維數(shù)組在應(yīng)用中的具體使用吧,需要的朋友可以參考一下
    2021-10-10
  • C語言實現(xiàn)電腦關(guān)機(jī)程序

    C語言實現(xiàn)電腦關(guān)機(jī)程序

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)電腦關(guān)機(jī)程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02

最新評論

河曲县| 从江县| 芜湖市| 外汇| 辽源市| 交口县| 余姚市| 遂川县| 沁阳市| 荥阳市| 新野县| 右玉县| 漾濞| 内江市| 都江堰市| 紫阳县| 翁源县| 云浮市| 呼和浩特市| 灵璧县| 阳原县| 简阳市| 丽水市| 周至县| 永和县| 新乡县| 拉孜县| 弋阳县| 育儿| 蓬莱市| 贞丰县| 涿州市| 陆良县| 天长市| 平山县| 盱眙县| 临武县| 崇礼县| 佳木斯市| 河北区| 盘锦市|