自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

談?wù)勑?shù)的表示方法之定點(diǎn)數(shù)

開(kāi)發(fā) 前端
在數(shù)字信號(hào)處理中往往都需要進(jìn)行大量的數(shù)字運(yùn)算,比如,數(shù)字信號(hào)的解調(diào),需要采集大量的IQ數(shù)據(jù)對(duì)其進(jìn)行解調(diào)運(yùn)算。

[[385305]]

在數(shù)字信號(hào)處理中往往都需要進(jìn)行大量的數(shù)字運(yùn)算,比如,數(shù)字信號(hào)的解調(diào),需要采集大量的IQ數(shù)據(jù)對(duì)其進(jìn)行解調(diào)運(yùn)算。在實(shí)際的研究和學(xué)習(xí)中我們一般會(huì)在操作系統(tǒng)中利用豐富的軟件給我們提供的便捷的計(jì)算工具進(jìn)行計(jì)算(Matlab、Python等),這可以很方便的處理我們所研究的數(shù)字信號(hào)。然而,學(xué)過(guò)計(jì)算機(jī)原理或者匯編語(yǔ)言的同學(xué)會(huì)清楚,數(shù)據(jù)的運(yùn)算的最終是在計(jì)算機(jī)硬件上來(lái)完成的,我們?cè)诓僮飨到y(tǒng)層面的數(shù)據(jù)運(yùn)算往往意味著需要進(jìn)行大量的資源的調(diào)度。

雖然現(xiàn)在的計(jì)算機(jī)的性能已經(jīng)非常的強(qiáng)大,但是對(duì)于面向應(yīng)用的產(chǎn)品來(lái)說(shuō),其處理器性能往往和計(jì)算機(jī)不能相提并論。

通常,在通信、圖像等數(shù)字信號(hào)處理中,會(huì)采用硬件芯片的方式進(jìn)行數(shù)據(jù)運(yùn)算(DSP、FPGA等),通過(guò)這種硬件芯片上進(jìn)行數(shù)字信號(hào)運(yùn)算,可以很好的提高運(yùn)算效率,這也在工程應(yīng)用中廣為采用的一種方式。

在這些處理器中往往各種數(shù)據(jù)都是通過(guò)整數(shù)形式存儲(chǔ)(比如,通信中的IQ數(shù)值的存儲(chǔ))。實(shí)際上,我們需要進(jìn)行運(yùn)算的數(shù)據(jù)大多都是小數(shù),那么,該怎么解決呢?一般的我們可以通過(guò)定點(diǎn)數(shù)這種方式來(lái)表示小數(shù)。

什么是定點(diǎn)數(shù)

定點(diǎn)數(shù)英文名叫Fixed Point Number,其關(guān)鍵地方就在定和點(diǎn)這兩個(gè)字上面,即在表示小數(shù)數(shù)據(jù)時(shí),把小數(shù)點(diǎn)的位置已經(jīng)約定好固定在某個(gè)位置。與之對(duì)應(yīng)的是浮點(diǎn)數(shù),其小數(shù)點(diǎn)的位置不是固定的,關(guān)于浮點(diǎn)數(shù)先不做展開(kāi)。

定數(shù)表示

在定點(diǎn)數(shù)中,小數(shù)點(diǎn)可以將數(shù)據(jù)分為整數(shù)和小數(shù)部分,因此我們可以約定小數(shù)點(diǎn)在數(shù)據(jù)中的不同位置,就可以表示不同大小和精度的小數(shù)。例如,當(dāng)小數(shù)點(diǎn)位置約定在符號(hào)位和數(shù)值位之間,就表示純小數(shù);當(dāng)小數(shù)點(diǎn)約定在最末尾位置時(shí),就可以表示純整數(shù)。

純小數(shù)

純整數(shù)

如何描述定點(diǎn)數(shù)的這種規(guī)則呢?其實(shí),我們可以使用兩種方法來(lái)表示:

  • Q來(lái)表示法Qx,x表示小數(shù)的位數(shù)。
  • S表示法Sx.y,x表示整數(shù)位數(shù),y表示小數(shù)位數(shù)。

我們知道在計(jì)算機(jī)中根據(jù)是否存在符號(hào)位可以分成無(wú)符號(hào)整數(shù)和有符號(hào)整數(shù),當(dāng)然,對(duì)于定點(diǎn)數(shù)也可以根據(jù)有無(wú)符號(hào)位分為:

  • 無(wú)符號(hào)定點(diǎn)數(shù):無(wú)符號(hào)位
  • 有符號(hào)定點(diǎn)數(shù):有符號(hào)位

無(wú)符號(hào)定點(diǎn)數(shù)

無(wú)符號(hào)定點(diǎn)數(shù),數(shù)值在機(jī)器中字長(zhǎng)的全部二進(jìn)制位中沒(méi)有符號(hào)位,全都是數(shù)值位。例如,小數(shù)1.2轉(zhuǎn)換成16位的定數(shù),小數(shù)點(diǎn)的位置約定在第14位和第15位之間。

無(wú)符號(hào)Q14

根據(jù)計(jì)算結(jié)果,小數(shù)1.2可以用Q14格式的無(wú)符號(hào)定點(diǎn)數(shù)19661表示。

無(wú)符號(hào)定點(diǎn)數(shù)比較簡(jiǎn)單,不存在負(fù)小數(shù);但是,有符號(hào)定點(diǎn)數(shù)就沒(méi)這么簡(jiǎn)單了,因?yàn)榇嬖谡?fù)數(shù),其計(jì)算方法也不盡相同。

原碼、反碼、補(bǔ)碼

原碼、反碼、補(bǔ)碼在大多數(shù)的計(jì)算機(jī)編程相關(guān)的書(shū)籍里基本上都會(huì)提到。在學(xué)習(xí)有符號(hào)定點(diǎn)數(shù)之前,我們需要先復(fù)習(xí)一下原碼、反碼和補(bǔ)碼。因?yàn)閿?shù)據(jù)在計(jì)算中的存儲(chǔ)方式是以補(bǔ)碼的形式存儲(chǔ)的,在學(xué)習(xí)有符號(hào)定點(diǎn)數(shù)之前,所以,我們有必要先復(fù)習(xí)這部分內(nèi)容。

  • 原碼:最高位作為符號(hào)位(無(wú)符號(hào)則沒(méi)有符號(hào)位),其他位是數(shù)據(jù)二進(jìn)制真值絕對(duì)值。例如,無(wú)符號(hào)數(shù)5,其8位二進(jìn)制數(shù)的原碼為0000 0101;有符號(hào)數(shù)5,其8位二進(jìn)制的原碼為0000 0101;有符號(hào)數(shù)-5,其8位二進(jìn)制的原碼1000 0101。
  • 反碼:正數(shù)的反碼是其原碼本身,負(fù)數(shù)的反碼在其原碼的基礎(chǔ)上符號(hào)位不變,其他位取反。例如,無(wú)符號(hào)數(shù)5,其8位二進(jìn)制數(shù)的反碼為0000 0101;有符號(hào)數(shù)5,其8位二進(jìn)制數(shù)的反碼為0000 0101;而有符號(hào)數(shù)-5,其8位二進(jìn)制的反碼為1111 1010。
  • 補(bǔ)碼:正數(shù)的補(bǔ)碼就是其本身,負(fù)數(shù)的補(bǔ)碼是在其反碼基礎(chǔ)上加1。例如,無(wú)符號(hào)數(shù)5,其8位二進(jìn)制數(shù)的補(bǔ)碼為0000 0101;有符號(hào)數(shù)5,其8位二進(jìn)制數(shù)的補(bǔ)碼為0000 0101;而有符號(hào)數(shù)-5,其8位二進(jìn)制的補(bǔ)碼為1111 1011。

對(duì)于正數(shù)來(lái)說(shuō),

  1. 原碼 = 反碼 = 補(bǔ)碼 

對(duì)于負(fù)數(shù)來(lái)說(shuō),

  1. 反碼 = 符號(hào)位不變,原碼取反 
  2. 補(bǔ)碼 = 反碼 + 1 

有符號(hào)定點(diǎn)數(shù)

有符號(hào)定點(diǎn)數(shù),需要專(zhuān)門(mén)取一位數(shù)據(jù)位作為符號(hào)位,通常,符號(hào)位上的1表示負(fù)數(shù),0表示正數(shù),其余位為數(shù)值位。例如,將小數(shù)0.8和-0.8轉(zhuǎn)成Q15格式的定點(diǎn)數(shù)。

有符號(hào)Q15

求正數(shù)0.8的定點(diǎn)數(shù):

求負(fù)數(shù)-0.8的定點(diǎn)數(shù):

在有符號(hào)定點(diǎn)數(shù)中,需要要注意負(fù)數(shù)的計(jì)算與正數(shù)有所不同。

最后

定點(diǎn)數(shù)和浮點(diǎn)數(shù)都可以表示小數(shù),而定點(diǎn)數(shù)的精度固定,表現(xiàn)范圍比較有限;但是,定點(diǎn)數(shù)在硬件上比較容易去實(shí)現(xiàn),在實(shí)際的數(shù)據(jù)算法中,定點(diǎn)數(shù)運(yùn)算效率比浮點(diǎn)數(shù)的運(yùn)算效率有大大的提高,同時(shí)也降低了數(shù)據(jù)存儲(chǔ)資源。因此,定點(diǎn)數(shù)會(huì)被廣泛的應(yīng)用到數(shù)字信號(hào)處理的各種應(yīng)用場(chǎng)景中。

本文轉(zhuǎn)載自微信公眾號(hào)「Will的大食堂」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系Will的大食堂公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: Will的大食堂
相關(guān)推薦

2020-10-12 06:38:08

存儲(chǔ)定點(diǎn)數(shù)

2025-03-03 04:20:00

2024-08-23 08:43:08

2011-05-25 14:10:38

浮點(diǎn)數(shù)

2023-01-05 11:27:27

技術(shù)架構(gòu)

2012-05-03 15:01:24

數(shù)值壓縮

2010-08-24 16:41:59

cellpaddingcellspacing

2010-04-20 13:39:08

Unix操作系統(tǒng)

2020-06-11 13:03:04

性能優(yōu)化緩存

2009-11-18 13:38:27

2021-10-19 14:04:28

C++類(lèi)型數(shù)字

2013-01-22 10:10:45

大數(shù)據(jù)小數(shù)據(jù)

2009-07-14 14:12:14

Javascript

2009-09-14 15:50:17

CCNA學(xué)習(xí)方法

2023-02-08 19:41:55

Python

2010-06-28 17:26:02

UML類(lèi)圖關(guān)系

2013-03-12 09:52:04

技術(shù)文檔技術(shù)反饋程序員

2012-05-08 16:37:23

android

2021-06-17 07:08:19

Tapablewebpack JavaScript

2011-12-16 17:07:22

安全事件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)