一種二進制數(shù)的雙向移位方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種二進制數(shù)的雙向移位方法及裝置,將m位第一有符號二進制數(shù)拆分成至少兩個m位第二有符號二進制數(shù),并依次采用各個第二有符號二進制數(shù)對應(yīng)的移位位數(shù)和移位方式對n位有符號二進制數(shù)進行移位處理,使對n位有符號二進制數(shù)的移位處理分兩步或兩步以上完成。采用本技術(shù)方案,不但可以得到所需的移位結(jié)果,而且當(dāng)對位數(shù)相同的n位有符號二進制數(shù)做移位處理時,采用本方案所需遍歷的移位方式要小于現(xiàn)有技術(shù)所需遍歷的移位方式,由于移位方式的減少,可以有效降低數(shù)字芯片的布線難度、提高代碼處理效率、還可避免因數(shù)字芯片所采用的時鐘頻率增加而導(dǎo)致的移位結(jié)果錯誤的缺陷。
【專利說明】一種二進制數(shù)的雙向移位方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)字信號處理【技術(shù)領(lǐng)域】,尤其涉及一種二進制數(shù)的雙向移位方法和裝置。
【背景技術(shù)】 [0002]在大多數(shù)字計算機、數(shù)字信號處理器件以及數(shù)字芯片中,數(shù)字和信號變量是用二進制數(shù)表示的。對于有符號二進制數(shù)來說,其最高位是符號位,最高位為‘0’時表示正數(shù),最高位為‘I’時表示負(fù)數(shù),其中,二進制數(shù)的表示方法有三種:原碼表示法、反碼表示法和補碼表示法。對于正數(shù)來說,原碼、反碼和補碼的表示是一樣的,例如,十進制數(shù)+ 6使用5bits (比特位)表示的原碼、反碼和補碼均是00110。對于負(fù)數(shù)來說,原碼是符號位加絕對值,反碼是符號位不變,其他所有的O變?yōu)?,I變?yōu)镺 ;補碼是在反碼的最低位上加1,例如:十進制數(shù)一 6使用5 b i t s表示的原碼是10110,反碼是11001,補碼是11010。
[0003]數(shù)字處理技術(shù)中,移位處理是一種常見的功能,分為左移和右移兩個方向。在計算機、器件和芯片中,通常使用補碼表示法去表示一個有符號二進制數(shù),對于一個補碼表示形
式的N b i t s二進制有符號數(shù)X1^1 Xn — 2---X1 Xtl,將其左移I位的結(jié)
果為 Xn —I X n-3 X n-4---Χ1 Χ? 0,即是令 X n — ι X n — 2---X I
X ^的最高位即符號位不變且其他每I b i t位置提前I位(即將X n — 2去掉,末位用O補
充),將其右移I位的結(jié)果為Xt1 Xn-! Xn — 2---X2 X1,即是令Xt1 X
n —2---X1 Xd勺最高位即符號位不變且其他每I b i t位置退后I位(即Xq去
掉,次高位用符號位Xt1補充)。也就是說,每左移I位,相當(dāng)于將數(shù)字乘以2,例如:00110(+6)左移I位后是01100 (+ 12),11010 (—6)左移I位后是10100 (― 12)。每右移I位,相當(dāng)于將數(shù)字除以2,例如:00110 (+6)右移I位后是00011 (+ 3),11010 (一 6)右移I位后是11101 (- 3)。
[0004]但是由于字長的有限性,當(dāng)左移位數(shù)太多,將數(shù)據(jù)增加的倍數(shù)太大時,有限的比特位(二進制位)將不能正確表示出移位的結(jié)果。例如,將00110 (+6)左移2位后是01000(+ 8),將11010 ( — 6)左移2位后是11000 ( — 8),都發(fā)生了數(shù)據(jù)溢出,結(jié)果產(chǎn)生錯誤。因此在移位時要考慮飽和截位,溢出后將數(shù)據(jù)置為絕對值“最大值”,例如,將00110 (+ 6)左移2位后是01111 (+ 15,最大正數(shù)),將11010 (—6)左移2位后是10000 (— 16,最小負(fù)數(shù))。右移移位時不需要考慮數(shù)據(jù)溢出的問題。
[0005]對于數(shù)字芯片現(xiàn)場可編程門陣列(F ield—Progr a mm ableGate Arra y,F(xiàn) P G A),在基于F P G A實現(xiàn)二進制數(shù)移位的設(shè)計中,已知數(shù)
據(jù)X(Xn —i Xn — 2---X1 X J為二進制有符號數(shù)的補碼表示形式,要求其按照
補碼二進制數(shù)Am_i Am_2---A: A。的取值完成移位處理,即是當(dāng)Am_ i A
m-2---A1 A。表不正數(shù)+A時,X向右移動I A I位;當(dāng)Am—i Am—2---
A ι A。表示負(fù)數(shù)一 A時,X向左移動I A I位。其中取值范圍為m <= I Og 2(n) + I。參見圖1所示的常規(guī)移位情況示意圖,假設(shè)m= 5,則A的取值范圍為一16?+ 15,此時需要遍歷A的各種取值,A的取值使得數(shù)據(jù)X的移位方式有32種,且對于左移輸出后的數(shù)據(jù)Y還需要考慮數(shù)據(jù)溢出問題。
[0006]但是,在F P G A中,當(dāng)移位的位數(shù)不斷增加時,實現(xiàn)的難度將成幾何倍數(shù)增加,具體表現(xiàn)為FPGA的布局布線難度增加,且因需要遍歷各種移位情況導(dǎo)致算法運行效率降低,而且當(dāng)F P G A時鐘頻率增加時,復(fù)雜的移位布線將可能使F P G A產(chǎn)生錯誤的移位結(jié)果。
【發(fā)明內(nèi)容】
[0007]有鑒于此,本發(fā)明實施例的主要目的在于提供一種二進制數(shù)的雙向移位方法和裝置,通過減少移位情況,以實現(xiàn)降低數(shù)字芯片布線難度、提高代碼處理效率、避免因時鐘頻率增加而導(dǎo)致的移位結(jié)果錯誤的目的。
[0008]為實現(xiàn)上述目的,本發(fā)明實施例提供了一種二進制數(shù)的雙向移位方法,包括:
[0009]若m位第一有符號二進制數(shù)對應(yīng)的第一有符號十進制數(shù)為負(fù)數(shù)且η位有符號二進制數(shù)左移k位后不會發(fā)生溢出,k為所述第一有符號十進制數(shù)的絕對值,則將m位第一有符號二進制數(shù)拆分成至少兩個m位第二有符號二進制數(shù),所述第一有符號二進制數(shù)等于所述至少兩個第二有符號二進制數(shù)的和值;
[0010]將所述至少兩個第二有符號二進制數(shù)分別轉(zhuǎn)換為第二有符號十進制數(shù),所述第二有符號十進制數(shù)的絕對值對應(yīng)于移位位數(shù),所述第二有符號十進制數(shù)的符號對應(yīng)于移位方向,所述符號為正時所述移位方向為右,所述符號為負(fù)時所述移位方向為左;
[0011]從至少兩個第二有符號十進制數(shù)中提取一個第二有符號十進制數(shù),并按照提取的第二有符號十進制數(shù)對應(yīng)的移位位數(shù)和移位方向?qū)Ζ俏挥蟹柖M制數(shù)進行移位處理;
[0012]從未被提取過的第二有符號十進制數(shù)中提取一個第二有符號十進制數(shù),并按照提取的第二有符號十進制數(shù)對應(yīng)的移位位數(shù)和移位方向?qū)ι弦淮我莆惶幚砗蟮摩俏挥蟹柖M制數(shù)進行本次移位處理,繼續(xù)執(zhí)行所述從未被提取過的第二有符號十進制數(shù)中提取一個有符號十進制數(shù)的步驟,直到全部提取完畢為止;
[0013]其中,當(dāng)所述本次移位處理的移位位數(shù)為P時,若本次移位方向為左且上次移位方向為右,則從上次向右移出的各個二進制位中的最高位開始取出P位且在不足P位時補
O,并將取出的P位填補到本次移位結(jié)束后的η位有符號二進制數(shù)的最低P位處;若本次移位方向為右且上次移位方向為左,則從上一次向左移出的各個二進制位中的最低位開始取出P位且在不足P位時補符號位,并將取出的P位填補到本次移位結(jié)束后的η位有符號二進制數(shù)中符號位后的最高P位處;
[0014]其中,m、η、k和P 均為正整數(shù),m <= I O g 2 (η) + I。
[0015]優(yōu)選地,在上述方法中,
[0016]若m位第一有符號二進制數(shù)對應(yīng)的第一有符號十進制數(shù)為負(fù)數(shù)且η位有符號二進制數(shù)左移k位后會發(fā)生溢出,則當(dāng)所述η位有符號二進制數(shù)的符號位為I時,將左移k位后的η位有符號二進制數(shù)置為最小負(fù)數(shù),或,當(dāng)所述η位有符號二進制數(shù)的符號位為O時,將左移k位后的η位有符號二進制數(shù)置為最大正數(shù)。
[0017]優(yōu)選地,在上述方法中,所述將m位第一有符號二進制數(shù)拆分成至少兩個m位第二有符號二進制數(shù),具體包括:
[0018]將所述m位第一有符號二進制數(shù)的各個二進制位拆分成至少兩個數(shù)據(jù)區(qū)間,所述數(shù)據(jù)區(qū)間中包括一個二進制位或多個二進制位;
[0019]保持所述數(shù)據(jù)區(qū)間內(nèi)各個二進制位在所述m位第一有符號二進制數(shù)中的位置不變,并將除所述數(shù)據(jù)區(qū)間內(nèi)各個二進制位以外的與所述m位第一有符號二進制數(shù)對應(yīng)的其它二進制位補零,以得到m位第二有符號二進制數(shù)。
[0020]優(yōu)選地,在上述方法中,所述將m位第一有符號二進制數(shù)拆分成至少兩個m位第二有符號二進制數(shù),具體包括:
[0021]分次從所述m位第一有符號二進制數(shù)中提取一個或多個二進制位,直到將所述m位第一有符號二進制數(shù)中的所有二進制位提取完為止;
[0022]對于每次提取的二進制位,保持提取的二進制位在所述m位第一有符號二進制數(shù)中的位置不變,并將除提取的二進制位以外的與所述m位第一有符號二進制數(shù)對應(yīng)的其它二進制位補零,以得到m位第二有符號二進制數(shù)。
[0023]優(yōu)選地,在上述方法中,
[0024]若所述至少兩個第二有符號十進制數(shù)中存在一個符號為負(fù)的第二有符號十進制數(shù),則最后提取所述符號為負(fù)的第二有符號十進制數(shù)。
[0025]本發(fā)明實施例還提供了一種二進制數(shù)的雙向移位裝置,包括:
[0026]拆分單元,用于若m位第一有符號二進制數(shù)對應(yīng)的第一有符號十進制數(shù)為負(fù)數(shù)且η位有符號二進制數(shù)左移k位后不會發(fā)生溢出,k為所述第一有符號十進制數(shù)的絕對值,則將m位第一有符號二進制數(shù)拆分成至少兩個m位第二有符號二進制數(shù),所述第一有符號二進制數(shù)等于所述至少兩個第二有符號二進制數(shù)的和值;
[0027]轉(zhuǎn)換單元,用于將所述至少兩個第二有符號二進制數(shù)分別轉(zhuǎn)換為第二有符號十進制數(shù),所述第二有符號十進制數(shù)的絕對值對應(yīng)于移位位數(shù),所述第二有符號十進制數(shù)的符號對應(yīng)于移位方向,所述符號為正時所述移位方向為右,所述符號為負(fù)時所述移位方向為左;
[0028]第一提取移位單元,用于從至少兩個第二有符號十進制數(shù)中提取一個第二有符號十進制數(shù),并按照提取的第二有符號十進制數(shù)對應(yīng)的移位位數(shù)和移位方向?qū)Ζ俏挥蟹柖M制數(shù)進行移位處理;
[0029]第二提取移位單元,用于從未被提取過的第二有符號十進制數(shù)中提取一個第二有符號十進制數(shù),并按照提取的第二有符號十進制數(shù)對應(yīng)的移位位數(shù)和移位方向?qū)ι弦淮我莆惶幚砗蟮摩俏挥蟹柖M制數(shù)進行本次移位處理,繼續(xù)利用所述第二提取移位單元執(zhí)行所述從未被提取過的第二有符號十進制數(shù)中提取一個有符號十進制數(shù)的步驟,直到全部提取完畢為止;
[0030]其中,當(dāng)所述本次移位處理的移位位數(shù)為P時,若本次移位方向為左且上次移位方向為右,則從上次向右移出的各個二進制位中的最高位開始取出P位且在不足P位時補
O,并將取出的P位填補到本次移位結(jié)束后的η位有符號二進制數(shù)的最低P位處;若本次移位方向為右且上次移位方向為左,則從上一次向左移出的各個二進制位中的最低位開始取出P位且在不足P位時補符號位,并將取出的P位填補到本次移位結(jié)束后的η位有符號二進制數(shù)中符號位后的最高P位處;[0031]其中,m、n和p 均為整數(shù),m <= I Og 2 (η) + I。
[0032]優(yōu)選地,上述裝置還包括:
[0033]溢出置數(shù)單元,用于若m位第一有符號二進制數(shù)對應(yīng)的第一有符號十進制數(shù)為負(fù)數(shù)且η位有符號二進制數(shù)左移k位后會發(fā)生溢出,則當(dāng)所述η位有符號二進制數(shù)的符號位為I時,將左移k位后的η位有符號二進制數(shù)置為最小負(fù)數(shù),或,當(dāng)所述η位有符號二進制數(shù)的符號位為O時,將左移k位后的η位有符號二進制數(shù)置為最大正數(shù)。
[0034]優(yōu)選地,在上述裝置中,所述拆分單元,具體包括:
[0035]第一拆分子單元,用于將所述m位第一有符號二進制數(shù)的各個二進制位拆分成至少兩個數(shù)據(jù)區(qū)間,所述數(shù)據(jù)區(qū)間中包括一個二進制位或多個二進制位;
[0036]第一保持填補子單元,用于保持所述數(shù)據(jù)區(qū)間內(nèi)各個二進制位在所述m位第一有符號二進制數(shù)中的位置不變,并將除所述數(shù)據(jù)區(qū)間內(nèi)各個二進制位以外的與所述m位第一有符號二進制數(shù)對應(yīng)的其它二進制位補零,以得到m位第二有符號二進制數(shù)。
[0037]優(yōu)選地,在上述裝置中,所述拆分單元,具體包括:
[0038]第二拆分子單元,用于分次從所述m位第一有符號二進制數(shù)中提取一個或多個二進制位,直到將所述m位第一有符號二進制數(shù)中的所有二進制位提取完為止;
[0039]第二保持填補子單元,用于對于每次提取的二進制位,保持提取的二進制位在所述m位第一有符號二進制數(shù)中的位置不變,并將除提取的二進制位以外的與所述m位第一有符號二進制數(shù)對應(yīng)的其它二進制位補零,以得到m位第二有符號二進制數(shù)。
[0040]優(yōu)選地,上裝置還包括:
[0041]判斷單元,用于判斷所述至少兩個第二有符號十進制數(shù)中是否存在一個符號為負(fù)的第二有符號十進制數(shù);
[0042]所述第一提取移位單元,具體包括:
[0043]正數(shù)提取子單元,用于在所述判斷單元判斷得到的存在一個符號為負(fù)的第二有符號十進制數(shù)時,從所述至少兩個第二有符號十進制數(shù)中提取一個符號為正的第二有符號十進制數(shù);
[0044]第一移位子單元,用于按照所述符號為正的第二有符號十進制數(shù)對應(yīng)的移位位數(shù)和移位方向?qū)Ζ俏挥蟹柖M制數(shù)進行移位處理;
[0045]所述第二提取移位單元,具體包括:
[0046]負(fù)數(shù)提取子單元,用于最后從未被提取過的第二有符號十進制數(shù)中提取所述符號為負(fù)的第二有符號十進制數(shù);
[0047]第二移位子單元,用于按照所述符號為負(fù)的第二有符號十進制數(shù)對應(yīng)的移位位數(shù)和移位方向?qū)ι弦淮我莆惶幚砗蟮摩俏挥蟹柖M制數(shù)進行本次移位處理。
[0048]本發(fā)明實施例提供的二進制數(shù)的雙向移位方法和裝置,將m位第一有符號二進制數(shù)拆分成至少兩個m位第二有符號二進制數(shù),并依次采用各個第二有符號二進制數(shù)對應(yīng)的移位位數(shù)和移位方式對η位有符號二進制數(shù)進行移位處理,使對η位有符號二進制數(shù)的移位處理分兩步或兩步以上完成。采用本技術(shù)方案,不但可以得到所需的移位結(jié)果,而且當(dāng)對位數(shù)相同的有符號二進制數(shù)做移位處理時,采用本方案所需遍歷的移位方式要小于現(xiàn)有技術(shù)所需遍歷的移位方式,由于移位方式的減少,可以有效降低數(shù)字芯片的布線難度、提高代碼處理效率、還可避免因數(shù)字芯片所采用的時鐘頻率增加而導(dǎo)致的移位結(jié)果錯誤的缺陷。【專利附圖】
【附圖說明】
[0049]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0050]圖1為現(xiàn)有的常規(guī)移位情況示意圖;
[0051]圖2為本發(fā)明實施例二進制數(shù)的雙向移位方法的流程示意圖;
[0052]圖3為本發(fā)明實施例第一移位示意圖;
[0053]圖4為本發(fā)明實施例第二移位示意圖;
[0054]圖5為本發(fā)明實施例二進制數(shù)的雙向移位裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0055]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0056]在介紹本發(fā)明實施 例前,首先介紹兩個有符號二進制數(shù)在本發(fā)明中的作用:
[0057]η位有符號二進制數(shù):是需要進行移位處理的二進制數(shù)。
[0058]m位第一有符號二進制數(shù):該二進制數(shù)的不同取值,對應(yīng)于一種η位有符號二進制數(shù)的移位方式,即定義了 η位有符號二進制數(shù)的移位位數(shù)P和移位方向。m位第一有符號二進制數(shù)對應(yīng)的十進制數(shù)的絕對值為所述移位位數(shù)P ;1^1位第一有符號二進制數(shù)對應(yīng)的十進制數(shù)為正時,移位方向為右;m位第一有符號二進制數(shù)對應(yīng)的十進制數(shù)為負(fù)時,移位方向為左。
[0059]其中,m、η和 P 均為正數(shù),m <= I O g 2 (η ) + I。
[0060]
[0061]參見圖2,為本發(fā)明實施例提供的二進制數(shù)的雙向移位方法的流程示意圖,實現(xiàn)該方法的步驟包括:
[0062]步驟201:判斷m位第一有符號二進制數(shù)對應(yīng)的第一有符號十進制數(shù)是否為負(fù)數(shù),如果是,則執(zhí)行步驟202,如果否,則執(zhí)行步驟204。
[0063]步驟202:判斷η位有符號二進制數(shù)左移k位后是否會發(fā)生溢出,如果是,則執(zhí)行步驟203,如果否,則執(zhí)行步驟204。
[0064]其中,k為所述第一有符號十進制數(shù)的絕對值。
[0065]其中,可采用下述方法實現(xiàn)步驟202:
[0066]判斷η位有符號二進制數(shù)的高K+ I位是否全部為I或是否全部為0,如果是,則可確定η位有符號二進制數(shù)左移k位后不會發(fā)生溢出,如果否,則可確定η位有符號二進制數(shù)左移k位后會發(fā)生溢出。
[0067]步驟203:當(dāng)所述η位有符號二進制數(shù)的符號位為I時,將左移k位后的η位有符號二進制數(shù)置為最小負(fù)數(shù),或,當(dāng)所述η位有符號二進制數(shù)的符號位為O時,將左移k位后的η位有符號二進制數(shù)置為最大正數(shù),執(zhí)行步驟209。
[0068]步驟204:將m位第一有符號二進制數(shù)拆分成至少兩個m位第二有符號二進制數(shù),所述第一有符號二進制數(shù)等于所述至少兩個第二有符號二進制數(shù)的和值。
[0069]在本發(fā)明實施例中,所述m位第一有符號二進制數(shù)及所述m位第二有符號二進制數(shù)均為補碼的表示形式,由于補碼的提出,使得所有有符號二進制數(shù)間的減法計算也都轉(zhuǎn)換成了加法計算。也就是說,任意一個補碼表示的有符號二進制數(shù),均可以轉(zhuǎn)換成任意個補碼表示的有符號二進制數(shù)相加。
[0070]設(shè)m位第一有符號二進制數(shù)為:A = Am—ι Am_2---Ai A。。在
步驟201中,可采用下述兩種方式中的一種將m位第一有符號二進制數(shù)拆分成多個m位第二有符號二進制數(shù):
[0071]方式一:
[0072]將所述m位第一有符號二進制數(shù)的各個二進制位拆分成至少兩個數(shù)據(jù)區(qū)間,所述數(shù)據(jù)區(qū)間中包括一個二進制位或多個二進制位;保持所述數(shù)據(jù)區(qū)間內(nèi)各個二進制位在所述m位第一有符號二進制數(shù)中的位置不變,并將除所述數(shù)據(jù)區(qū)間內(nèi)各個二進制位以外的與所述m位第一有符號二進制數(shù)對應(yīng)的其它二進制位補零,以得到m位第二有符號二進制數(shù)。
[0073]為了便于說明方式一的拆分方式,下面舉例說明:
[0074]例1:假設(shè)m= 5,則m位第一有符號二進制數(shù)為5位有符號二進制數(shù)A = A4 A3 A2 A1 A ^,將5位有符號二進制數(shù)的各個二進制位拆分成至少兩個數(shù)據(jù)區(qū)間,即可以為A4人3和人2 A1 A ^。保持A4 A3在5位有符號二進制數(shù)中的位置不變,并將除A4 A3以外的與所述5位有符號二進制數(shù)對應(yīng)的其它二進制位補零;同樣的,保持八2 A1 A ^在5位有符號二進制數(shù)中的位置不變,并將除人2 A1 A ^以外的與所述5位有符號二進制數(shù)對應(yīng)的其它二進制位補零。這樣將A = A4 A3 A2 A i進行拆分后便得到了另外兩個5位有符號二進制數(shù)B =B4B3B2B1B0=
O O A2 A1 AJC = C4 C3 C2 C1 C0 = A4A3 O O O。需要注意的是,A = B + C,即拆分后的兩個5位有符號二進制數(shù)之和(B +
C)等于拆分前的一個5位有符號二進制數(shù)A。
[0075]方式二:
[0076]分次從所述m位第一有符號二進制數(shù)中提取一個或多個二進制位,直到將所述m位第一有符號二進制數(shù)中的所有二進制位提取完為止;對于每次提取的二進制位,保持提取的二進制位在所述m位第一有符號二進制數(shù)中的位置不變,并將除提取的二進制位以外的與所述m位第一有符號二進制數(shù)對應(yīng)的其它二進制位補零,以得到m位第二有符號二進制數(shù)。
[0077]為了便于說明方式二的拆分方式,下面舉例說明:
[0078]例2:假設(shè)m= 5,則 m位第一有符號二進制數(shù)為5位有符號二進制數(shù)A = A4 a 3 A 2 Al人。,可以先從人4 A3 A 2 Al A Q中提取A 4和人2,再從A 4 A3 A 2 Al A。中提取A 3、A I和A。。對于A 4和人2,保持其在A 4 A3 A 2 AiA0中的位置不變,并將其它3位補0,這樣便得到了一個5位有符號二進制數(shù)B = B 4
B 3 B2 B1 B。= A4O A2 00 ;同樣的,對于 A 3、A JPA。,保持其在 A 4A3 A2 A1 A0中的位置不變,并將其它3位補O,這樣便得到了另一個5位有符號二進制數(shù)C = C 4 C 3 C 2 Cl CO = OA3 OAi A。。需要注意的是,A = B + C,即拆分后的兩個5位有符號二進制數(shù)之和(B + C )等于拆分前的一個5位有符號二進制數(shù)A。
[0079]當(dāng)然,本發(fā)明實施例不限于上述例I或例2中給出的拆分方式,其任何變形均為本發(fā)明實施例所保護的內(nèi)容,在此不在一一贅述。
[0080]需要說明的是,對于m位第一有符號二進制數(shù)的位數(shù)較少時,譬如5位,將m位第一有符號二進制數(shù)拆分成兩個m位第二有符號二進制數(shù)即可;對于m位第一有符號二進制數(shù)的位數(shù)較多時,將m位第一有符號二進制數(shù)拆分成3或4或5個m位第二有符號二進制數(shù)即可。
[0081]步驟205:將所述至少兩個第二有符號二進制數(shù)分別轉(zhuǎn)換為第二有符號十進制數(shù),所述第二有符號十進制數(shù)的絕對值對應(yīng)于移位位數(shù),所述第二有符號十進制數(shù)的符號對應(yīng)于移位方向,所述符號為正時所述移位方向為右,所述符號為負(fù)時所述移位方向為左。
[0082]步驟206:從至少兩個第二有符號十進制數(shù)中提取一個第二有符號十進制數(shù),并按照提取的第二有符號十進制數(shù)對應(yīng)的移位位數(shù)和移位方向?qū)Ζ俏挥蟹柖M制數(shù)進行移位處理。
[0083]步驟207:從未被提取過的第二有符號十進制數(shù)中提取一個第二有符號十進制數(shù),并按照提取的第二有符號十進制數(shù)對應(yīng)的移位位數(shù)和移位方向?qū)ι弦淮我莆惶幚砗蟮摩俏挥蟹柖M制數(shù)進行本次移位處理。
[0084]其中,η位有符號二進制數(shù)為補碼的表示形式。
[0085]為了保證移位結(jié)果的正確性,在每次移位處理過程中,為了不產(chǎn)生由于向右移位導(dǎo)視低位數(shù)據(jù)丟失,而下次再向左移位不能恢復(fù)之前移出的數(shù)據(jù)的問題,或是不產(chǎn)生由于向左移位導(dǎo)視高位數(shù)據(jù)丟失,而下次再向右移位不能恢復(fù)之前移出的數(shù)據(jù)的問題。本發(fā)明實施例在每次移位時需要做以下處理:
[0086]當(dāng)所述本次移位處理的移位位數(shù)為P時,若本次移位方向為左且上次移位方向為右,則從上次向右移出的各個二進制位中的最高位開始取出P位且在不足P位時補0,并將取出的P位填補到本次移位結(jié)束后的η位有符號二進制數(shù)的最低P位處;若本次移位方向為右且上次移位方向為左,則從上一次向左移出的各個二進制位中的最低位開始取出P位且在不足P位時補符號位,并將取出的P位填補到本次移位結(jié)束后的η位有符號二進制數(shù)中符號位后的最高P位處。其中,m、η、k和P均為正整數(shù),m <= I O g 2 (η ) +
1
[0087]步驟208:判斷是否還有未被提取過的第二有符號十進制數(shù),如果是,則執(zhí)行步驟207,以繼續(xù)執(zhí)行所述從未被提取過的第二有符號十進制數(shù)中提取一個第二有符號十進制數(shù)的步驟,直到全部提取完畢為止;如果否,則執(zhí)行步驟209。
[0088]步驟209:結(jié)束流程。
[0089]為了便于說明步驟202至206,下面舉例說明:
[0090]對于步驟201中方式一(例I)的拆分方式,B = B4 B 3 B 2 BI BO = O O A 2 A I A O對應(yīng)的有符號十進制數(shù)的取值范圍是O?+ 7,其中,O代表不移位,+ I~+ 7分別代表向右移動1、2、……7位;C = C4 C3 C 2 C1Ctl = A4 A3 O O O對應(yīng)的有符號十進制數(shù)的取值包括:0、+8、一 8和一 16,其中,O代表不移位,+ 8代表向右移動8位,一8代表向左移動8位,+ 16代表向右移動16位。在對η位有符號二進制數(shù)進行移位處理時,可先按照B對應(yīng)的有符號十進制數(shù)進行移位,再按照C對應(yīng)的有符號十進制數(shù)進行移位(參見圖3所示的第一移位示意圖);或者是先按照C對應(yīng)的有符號十進制數(shù)進行移位,再按照B對應(yīng)的有符號十進制數(shù)進行移位。[0091]對于步驟201中方式二 (例2)的拆分方式,B = B4 B3 B 2 B1 B。
=A4O A 2 00對應(yīng)的有符號十進制數(shù)的取值包括:0、+4、一 16和一 12,其中,O代表不移位,+ 4代表向右移動4位,-16代表向左移動16位,-12代表向左移動12位;C
=C 4 C 3 C 2 Cl CO = OA3 OA1 A j寸應(yīng)的有符號十進制數(shù)的取值包括:0~+ 3和+ 8~+ 11,其中,O代表不移位,+ I~+ 3分別代表向右移動1、2、3位,+ 8~+ 11分別代表向右移動8、9、10、11位。在對η位有符號二進制數(shù)進行移位處理時,可先按照B對應(yīng)的有符號十進制數(shù)進行移位,再按照C對應(yīng)的有符號十進制數(shù)進行移位(參見圖4所示的第二移位示意圖);或者是先按照C對應(yīng)的有符號十進制數(shù)進行移位,再按照B對應(yīng)的有符號十進制數(shù)進行移位。
[0092]可見,本發(fā)明實施例將5位有符號二進制數(shù)拆A分成了兩個5位有符號二進制數(shù)B和C,B和C對應(yīng)的移位方式共12種(參見圖3和圖4),而在現(xiàn)有技術(shù)中(參見圖1),移位方式共32種,所以,與現(xiàn)有移位方式的數(shù)量相比,采用本發(fā)明實施例提供的方法進行移位,只需要提供12種移位方式,便可實現(xiàn)對η位有符號二進制數(shù)的移位處理。由于移位方式的減少,可降低F P G A的布局復(fù)雜度,提高算法運行效率,并在F P G A時鐘頻率增加時,提聞聞速移位處理下的穩(wěn)定性。
[0093]進一步的,若所述至少兩個第二有符號十進制數(shù)中存在一個符號為負(fù)的第二有符號十進制數(shù),則最后提取所述符號為負(fù)的第二有符號十進制數(shù)。
[0094]為了更方便的了解本發(fā)明實施例,下面具體舉例說明:
[0095]假設(shè)需要進行移位的η (η = 16)位有符號二進制數(shù)為:X = X15X14 ---Xi X C1,若需要將X向左移動2位,則m(m= 5)位第一有符號二進制數(shù)為:
A =11110其中,X 、A均采用補碼表示,A對應(yīng)的有符號十進制數(shù)為一 2?;诖?,移位處理流程如下:
[0096]首先,判斷X = X15X14---X1 X。向左移2位是否會發(fā)生溢出,
即判斷X的高3位是否全部為I或是否全部為0,如果否,則可確定X左移2位后會發(fā)生溢出,此時將左移2位后的X置為最小負(fù)數(shù)(符號位為I時)或最大正數(shù)(符號位為O時);如果是,則可確定X左移2位后不會發(fā)生溢出,接下來可按照以下其中一種移位處理流程實現(xiàn)對X的移位:
[0097]第一種移位處理流程:
[0098](I)、可將A拆分成兩個5位有符號二進制數(shù)。若采用步驟201中的方式一對A進行拆分,則可拆分為:B =00110和C = 11000。
[0099](2)、將B和C轉(zhuǎn)換為有符號十進制數(shù),分別為B =6和C =-8? B =6表示向右移動6位,C =一 8表示向左移動8位。
[0100](3)、下面將A進行移位處理:[0101]第一種方式是,先將X向右移動6位得到Z= X15X15 X15 X15 X15X 15 X 15 X 14 X 13 X 12 X π X 10 X9 X8X7 X6 ,再將 Z 向左移動 8 位得至 IJY = X15 X12 X11 X10 X9 X8X7 X6 X 5 X 4 X 3 X2X1 x0oo。
[0102]第二種方式是,先將X向左移動8位得到Z= X15 X6 X5 X4 X3 X2 X ! X。00000000 ,再將 Z 向右移動 6 位得到 Y= X15 X12 X11 Xltl XgX 8 X 7 X6 X5 X4 X3 X 2 X 1 X 000。
[0103]第二種移位處理流程:
[0104](I)、可將A拆分成兩個5位有符號二進制數(shù)。若采用步驟201中的方式二對A進行拆分,則可拆分為:B =10100和C =01010。
[0105](2)、將B和C轉(zhuǎn)換為有符號十進制數(shù),分別為B =—12和C = 10。B = —12表示向左移動12位,C = 10表示向右移動10位。
[0106](3)、下面將A進行移位處理:
[0107]第一種方式是,先將X向右移動10位得到Z= X15X15 X15 X15 X15X15 X15 X15 X15 X15 X15X14 X13 X12 X11 X10 ,再將Z 向左移動 12位得到 Y = X15 X12 X11 X10 X9 X8X7 X6 X5 X4 X3 X2X1 X000。
[0108]第二種方式是,先將X向左移動12位得到Z = X15 X2X1 Xci000000000000,再將 Z 向右移動 10 位得到 Y= X 15 X 12 X n X 10 X9 X8X7X6 X 5 X4 X 3 X2Xi x0oo。
[0109]本發(fā)明實施例提供的二進制數(shù)的雙向移位方法,將m位第一有符號二進制數(shù)拆分成至少兩個m位第二有符號二進制數(shù),并依次采用各個第二有符號二進制數(shù)對應(yīng)的移位位數(shù)和移位方式對η位有符號二進制數(shù)進行移位處理,使對η位有符號二進制數(shù)的移位處理分兩步或兩步以上完成。采用本技術(shù)方案,不但可以得到所需的移位結(jié)果,而且當(dāng)對位數(shù)相同的η位有符號二進制數(shù)做移位處理時,采用本方案所需遍歷的移位方式要小于現(xiàn)有技術(shù)所需遍歷的移位方式,由于移位方式的減少,可以有效降低數(shù)字芯片的布線難度、提高代碼處理效率、還可避免因數(shù)字芯片所采用的時鐘頻率增加而導(dǎo)致的移位結(jié)果錯誤的缺陷。
[0110]
[0111]參見圖5所示的二進制數(shù)的雙向移位裝置的結(jié)構(gòu)示意圖,該裝置500包括:
[0112]拆分單元501,用于若m位第一有符號二進制數(shù)對應(yīng)的第一有符號十進制數(shù)為負(fù)數(shù)且η位有符號二進制數(shù)左移k位后不會發(fā)生溢出,k為所述第一有符號十進制數(shù)的絕對值,則將m位第一有符號二進制數(shù)拆分成至少兩個m位第二有符號二進制數(shù),所述第一有符號二進制數(shù)等于所述至少兩個第二有符號二進制數(shù)的和值;
[0113]轉(zhuǎn)換單元502,用于將所述至少兩個第二有符號二進制數(shù)分別轉(zhuǎn)換為第二有符號十進制數(shù),所述第二有符號十進制數(shù)的絕對值對應(yīng)于移位位數(shù),所述第二有符號十進制數(shù)的符號對應(yīng)于移位方向,所述符號為正時所述移位方向為右,所述符號為負(fù)時所述移位方向為左;
[0114]第一提取移位單元503,用于從至少兩個第二有符號十進制數(shù)中提取一個第二有符號十進制數(shù),并按照提取的第二有符號十進制數(shù)對應(yīng)的移位位數(shù)和移位方向?qū)Ζ俏挥蟹柖M制數(shù)進行移位處理;
[0115]第二提取移位單元504,用于從未被提取過的第二有符號十進制數(shù)中提取一個第二有符號十進制數(shù),并按照提取的第二有符號十進制數(shù)對應(yīng)的移位位數(shù)和移位方向?qū)ι弦淮我莆惶幚砗蟮摩俏挥蟹柖M制數(shù)進行本次移位處理,繼續(xù)利用所述第二提取移位單元執(zhí)行所述從未被提取過的第二有符號十進制數(shù)中提取一個有符號十進制數(shù)的步驟,直到全部提取完畢為止;
[0116]其中,其中,當(dāng)所述本次移位處理的移位位數(shù)為P時,若本次移位方向為左且上次移位方向為右,則從上次向右移出的各個二進制位中的最高位開始取出P位且在不足P位時補0,并將取出的P位填補到本次移位結(jié)束后的η位有符號二進制數(shù)的最低P位處;若本次移位方向為右且上次移位方向為左,則從上一次向左移出的各個二進制位中的最低位開始取出P位且在不足P位時補符號位,并將取出的P位填補到本次移位結(jié)束后的η位有符號二進制數(shù)中符號位后的最高P位處;
[0117]其中,m、η、k和P 均為正整數(shù),m <= I O g 2 (η) + I。
[0118]進一步的,所述裝置還包括:
[0119]溢出置數(shù)單元,用于若m位第一有符號二進制數(shù)對應(yīng)的第一有符號十進制數(shù)為負(fù)數(shù)且η位有符號二進制數(shù)左移k位后會發(fā)生溢出,則當(dāng)所述η位有符號二進制數(shù)的符號位為I時,將左移k位后的η位有符號二進制數(shù)置為最小負(fù)數(shù),或,當(dāng)所述η位有符號二進制數(shù)的符號位為O時,將左移k位后的η位有符號二進制數(shù)置為最大正數(shù)。
[0120]優(yōu)選地,所述拆分單元501,具體包括:
[0121]第一拆分子單元,用于將所述m位第一有符號二進制數(shù)的各個二進制位拆分成至少兩個數(shù)據(jù)區(qū)間,所述數(shù)據(jù)區(qū)間中包括一個二進制位或多個二進制位;
[0122]第一保持填補子單元,用于保持所述數(shù)據(jù)區(qū)間內(nèi)各個二進制位在所述m位第一有符號二進制數(shù)中的位置不變,并將除所述數(shù)據(jù)區(qū)間內(nèi)各個二進制位以外的與所述m位第一有符號二進制數(shù)對應(yīng)的其它二進制位補零,以得到m位第二有符號二進制數(shù)。
[0123]或,所述拆分單元501,具體包括:
[0124]第二拆分子單元,用于分次從所述m位第一有符號二進制數(shù)中提取一個或多個二進制位,直到將所述m位第一有符號二進制數(shù)中的所有二進制位提取完為止;
[0125]第二保持填補子單元,用于對于每次提取的二進制位,保持提取的二進制位在所述m位第一有符號二進制數(shù)中的位置不變,并將除提取的二進制位以外的與所述m位第一有符號二進制數(shù)對應(yīng)的其它二進制位補零,以得到m位第二有符號二進制數(shù)。
[0126]此外,所述裝置500還包括:
[0127]判斷單元,用于判斷所述至少兩個第二有符號十進制數(shù)中是否存在一個符號為負(fù)的第二有符號十進制數(shù);
[0128]所述第一提取移位單元,具體包括:
[0129]正數(shù)提取子單元,用于在所述判斷單元判斷得到的存在一個符號為負(fù)的第二有符號十進制數(shù)時,從所述至少兩個第二有符號十進制數(shù)中提取一個符號為正的第二有符號十進制數(shù);
[0130]第一移位子單元,用于按照所述符號為正的第二有符號十進制數(shù)對應(yīng)的移位位數(shù)和移位方向?qū)Ζ俏挥蟹柖M制數(shù)進行移位處理;[0131]所述第二提取移位單元,具體包括:
[0132]負(fù)數(shù)提取子單元,用于最后從未被提取過的第二有符號十進制數(shù)中提取所述符號為負(fù)的第二有符號十進制數(shù);
[0133]第二移位子單元,用于按照所述符號為負(fù)的第二有符號十進制數(shù)對應(yīng)的移位位數(shù)和移位方向?qū)ι弦淮我莆惶幚砗蟮摩俏挥蟹柖M制數(shù)進行本次移位處理。
[0134]本發(fā)明實施例提供的二進制數(shù)的雙向移位裝置,將m位第一有符號二進制數(shù)拆分成至少兩個m位第二有符號二進制數(shù),并依次采用各個第二有符號二進制數(shù)對應(yīng)的移位位數(shù)和移位方式對η位有符號二進制數(shù)進行移位處理,使對η位有符號二進制數(shù)的移位處理分兩步或兩步以上完成。采用本技術(shù)方案,不但可以得到所需的移位結(jié)果,而且當(dāng)對位數(shù)相同的有符號二進制數(shù)做移位處理時,采用本方案所需遍歷的移位方式要小于現(xiàn)有技術(shù)所需遍歷的移位方式,由于移位方式的減少,可以有效降低數(shù)字芯片的布線難度、提高代碼處理效率、還可避免因數(shù)字芯片所采用的時鐘頻率增加而導(dǎo)致的移位結(jié)果錯誤的缺陷。
[0135]需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
[0136]對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。
【權(quán)利要求】
1.一種二進制數(shù)的雙向移位方法,其特征在于,包括: 若m位第一有符號二進制數(shù)對應(yīng)的第一有符號十進制數(shù)為負(fù)數(shù)且η位有符號二進制數(shù)左移k位后不會發(fā)生溢出,k為所述第一有符號十進制數(shù)的絕對值,則將m位第一有符號二進制數(shù)拆分成至少兩個m位第二有符號二進制數(shù),所述第一有符號二進制數(shù)等于所述至少兩個第二有符號二進制數(shù)的和值; 將所述至少兩個第二有符號二進制數(shù)分別轉(zhuǎn)換為第二有符號十進制數(shù),所述第二有符號十進制數(shù)的絕對值對應(yīng)于移位位數(shù),所述第二有符號十進制數(shù)的符號對應(yīng)于移位方向,所述符號為正時所述移位方向為右,所述符號為負(fù)時所述移位方向為左; 從至少兩個第二有符號十進制數(shù)中提取一個第二有符號十進制數(shù),并按照提取的第二有符號十進制數(shù)對應(yīng)的移位位數(shù)和移位方向?qū)Ζ俏挥蟹柖M制數(shù)進行移位處理; 從未被提取過的第二有符號十進制數(shù)中提取一個第二有符號十進制數(shù),并按照提取的第二有符號十進制數(shù)對應(yīng)的移位位數(shù)和移位方向?qū)ι弦淮我莆惶幚砗蟮摩俏挥蟹柖M制數(shù)進行本次移位處理,繼續(xù)執(zhí)行所述從未被提取過的第二有符號十進制數(shù)中提取一個有符號十進制數(shù)的步驟,直到全部提取完畢為止; 其中,當(dāng)所述本次移位處理的移位位數(shù)為P時,若本次移位方向為左且上次移位方向為右,則從上次向右移出的各個二進制位中的最高位開始取出P位且在不足P位時補O,并將取出的P位填補到本次移位結(jié)束后的η位有符號二進制數(shù)的最低P位處;若本次移位方向為右且上次移位方向為左,則從上一次向左移出的各個二進制位中的最低位開始取出P位且在不足P位時補符號位,并將取出的P位填補到本次移位結(jié)束后的η位有符號二進制數(shù)中符號位后的最高P位處; 其中,m、η、k和P均為正整數(shù),m <= I O g 2 (η) + I。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于, 若m位第一有符號二進制數(shù)對應(yīng)的第一有符號十進制數(shù)為負(fù)數(shù)且η位有符號二進制數(shù)左移k位后會發(fā)生溢出,則當(dāng)所述η位有符號二進制數(shù)的符號位為I時,將左移k位后的η位有符號二進制數(shù)置為最小負(fù)數(shù),或,當(dāng)所述η位有符號二進制數(shù)的符號位為O時,將左移k位后的η位有符號二進制數(shù)置為最大正數(shù)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將m位第一有符號二進制數(shù)拆分成至少兩個m位第二有符號二進制數(shù),具體包括: 將所述m位第一有符號二進制數(shù)的各個二進制位拆分成至少兩個數(shù)據(jù)區(qū)間,所述數(shù)據(jù)區(qū)間中包括一個二進制位或多個二進制位; 保持所述數(shù)據(jù)區(qū)間內(nèi)各個二進制位在所述m位第一有符號二進制數(shù)中的位置不變,并將除所述數(shù)據(jù)區(qū)間內(nèi)各個二進制位以外的與所述m位第一有符號二進制數(shù)對應(yīng)的其它二進制位補零,以得到m位第二有符號二進制數(shù)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將m位第一有符號二進制數(shù)拆分成至少兩個m位第二有符號二進制數(shù),具體包括: 分次從所述m位第一有符號二進制數(shù)中提取一個或多個二進制位,直到將所述m位第一有符號二進制數(shù)中的所有二進制位提取完為止; 對于每次提取的二進制位,保持提取的二進制位在所述m位第一有符號二進制數(shù)中的位置不變,并將除提取的二進制位以外的與所述m位第一有符號二進制數(shù)對應(yīng)的其它二進制位補零,以得到m位第二有符號二進制數(shù)。
5.根據(jù)權(quán)利要求1至4任一項所述的方法,其特征在于, 若所述至少兩個第二有符號十進制數(shù)中存在一個符號為負(fù)的第二有符號十進制數(shù),則最后提取所述符號為負(fù)的第二有符號十進制數(shù)。
6.一種二進制數(shù)的雙向移位裝置,其特征在于,包括: 拆分單元,用于若m位第一有符號二進制數(shù)對應(yīng)的第一有符號十進制數(shù)為負(fù)數(shù)且η位有符號二進制數(shù)左移k位后不會發(fā)生溢出,k為所述第一有符號十進制數(shù)的絕對值,則將m位第一有符號二進制數(shù)拆分成至少兩個m位第二有符號二進制數(shù),所述第一有符號二進制數(shù)等于所述至少兩個第二有符號二進制數(shù)的和值; 轉(zhuǎn)換單元,用于將所述至少兩個第二有符號二進制數(shù)分別轉(zhuǎn)換為第二有符號十進制數(shù),所述第二有符號十進制數(shù)的絕對值對應(yīng)于移位位數(shù),所述第二有符號十進制數(shù)的符號對應(yīng)于移位方向,所述符號為正時所述移位方向為右,所述符號為負(fù)時所述移位方向為左; 第一提取移位單元,用于從至少兩個第二有符號十進制數(shù)中提取一個第二有符號十進制數(shù),并按照提取的第二有符號十進制數(shù)對應(yīng)的移位位數(shù)和移位方向?qū)Ζ俏挥蟹柖M制數(shù)進行移位處理; 第二提取移位單元,用于從未被提取過的第二有符號十進制數(shù)中提取一個第二有符號十進制數(shù),并按照提取的第二有符號十進制數(shù)對應(yīng)的移位位數(shù)和移位方向?qū)ι弦淮我莆惶幚砗蟮摩俏挥蟹柖M制數(shù)進行本次移位處理,繼續(xù)利用所述第二提取移位單元執(zhí)行所述從未被提取過的第二有符號十進制數(shù)中提取一個有符號十進制數(shù)的步驟,直到全部提取完畢為止; 其中,當(dāng)所述本次移位處理的移位位數(shù)為P時,若本次移位方向為左且上次移位方向為右,則從上次向右移出的各`個二進制位中的最高位開始取出P位且在不足P位時補O,并將取出的P位填補到本次移位結(jié)束后的η位有符號二進制數(shù)的最低P位處;若本次移位方向為右且上次移位方向為左,則從上一次向左移出的各個二進制位中的最低位開始取出P位且在不足P位時補符號位,并將取出的P位填補到本次移位結(jié)束后的η位有符號二進制數(shù)中符號位后的最高P位處; 其中,m、η和P均為整數(shù),m <= I O g 2 (η) + I。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括: 溢出置數(shù)單元,用于若m位第一有符號二進制數(shù)對應(yīng)的第一有符號十進制數(shù)為負(fù)數(shù)且η位有符號二進制數(shù)左移k位后會發(fā)生溢出,則當(dāng)所述η位有符號二進制數(shù)的符號位為I時,將左移k位后的η位有符號二進制數(shù)置為最小負(fù)數(shù),或,當(dāng)所述η位有符號二進制數(shù)的符號位為O時,將左移k位后的η位有符號二進制數(shù)置為最大正數(shù)。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述拆分單元,具體包括: 第一拆分子單元,用于將所述m位第一有符號二進制數(shù)的各個二進制位拆分成至少兩個數(shù)據(jù)區(qū)間,所述數(shù)據(jù)區(qū)間中包括一個二進制位或多個二進制位; 第一保持填補子單元,用于保持所述數(shù)據(jù)區(qū)間內(nèi)各個二進制位在所述m位第一有符號二進制數(shù)中的位置不變,并將除所述數(shù)據(jù)區(qū)間內(nèi)各個二進制位以外的與所述m位第一有符號二進制數(shù)對應(yīng)的其它二進制位補零,以得到m位第二有符號二進制數(shù)。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述拆分單元,具體包括: 第二拆分子單元,用于分次從所述m位第一有符號二進制數(shù)中提取一個或多個二進制位,直到將所述m位第一有符號二進制數(shù)中的所有二進制位提取完為止; 第二保持填補子單元,用于對于每次提取的二進制位,保持提取的二進制位在所述m位第一有符號二進制數(shù)中的位置不變,并將除提取的二進制位以外的與所述m位第一有符號二進制數(shù)對應(yīng)的其它二進制位補零,以得到m位第二有符號二進制數(shù)。
10.根據(jù)權(quán)利要求6至9任一項所述的裝置,其特征在于,所述裝置還包括: 判斷單元,用于判斷所述至少兩個第二有符號十進制數(shù)中是否存在一個符號為負(fù)的第二有符號十進制數(shù); 所述第一提取移位單元,具體包括: 正數(shù)提取子單元,用于在所述判斷單元判斷得到的存在一個符號為負(fù)的第二有符號十進制數(shù)時,從所述至少兩個第二有符號十進制數(shù)中提取一個符號為正的第二有符號十進制數(shù); 第一移位子單元,用于按照所述符號為正的第二有符號十進制數(shù)對應(yīng)的移位位數(shù)和移位方向?qū)Ζ俏挥蟹柖M制數(shù)進行移位處理; 所述第二提取移位單元,具體包括: 負(fù)數(shù)提取子單元,用于最后從未被提取過的第二有符號十進制數(shù)中提取所述符號為負(fù)的第二有符號十進制數(shù); 第二移位子單元,用于按照所述符號為負(fù)的第二有符號十進制數(shù)對應(yīng)的移位位數(shù)和移位方向?qū)ι弦淮我莆惶幚砗蟮摩俏挥蟹柖M制數(shù)進行本次移位處理。
【文檔編號】G06F5/01GK103677731SQ201310680553
【公開日】2014年3月26日 申請日期:2013年12月12日 優(yōu)先權(quán)日:2013年12月12日
【發(fā)明者】杜東振, 陳印鋒, 朱宇霞 申請人:北京北方烽火科技有限公司