下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第第頁(yè)嵌入式開發(fā)中字節(jié)高低位轉(zhuǎn)換如何實(shí)現(xiàn)蝶式交換。
問題是這樣子的:
協(xié)議要求字節(jié)低位在左,高位在右,對(duì)每個(gè)字節(jié)做轉(zhuǎn)換處理,逐個(gè)交換其高低位,例如11010001,經(jīng)過(guò)0->7,1->6,2->5,3->4對(duì)應(yīng)位的交換,變成10001011。
這里就需要有位操作的知識(shí),參考位操作運(yùn)算有什么技巧?(附源碼)
這里我們以8位數(shù)據(jù)高低位轉(zhuǎn)換為例子:
1#include
23unsigned
char
highAndLowShiftHEX(unsigned
char
data);4void
printBin(int
n);56int
main
()
{78
highAndLowShiftHEX(209);9
return
0;10}1112unsigned
char
highAndLowShiftHEX(unsigned
char
data)
13{
14
unsigned
char
i;
15
unsigned
char
tmp=0x00;
16
f(or)(i=0;i>i)
19
//printBin(tmp);20
if(i=
0;
i
--)//略去高位0.39
{40
if(n41
}4243
for(;i>=0;
i
--)44
printf("%d",
(n45}
熟悉位操作,上述代碼實(shí)現(xiàn)起來(lái)就比較簡(jiǎn)單。在(嵌入式開發(fā))中這類問題通常使用蝶式交換法和查表法來(lái)實(shí)現(xiàn)。
高階實(shí)現(xiàn)?
查表法就是將一些值存到內(nèi)存中,在需要計(jì)算的時(shí)候查表,但是這種方法會(huì)占用額外的存儲(chǔ)空間。
所以這里主要介紹一下蝶式交換法,我們以8位數(shù)據(jù)轉(zhuǎn)換為例。
假設(shè)原始序列為:12345678
目標(biāo)序列為:87654321
那么流程圖如下:
由此完成了整個(gè)位的逆序轉(zhuǎn)換,同樣以11010001為例,下面是具體的實(shí)現(xiàn)代碼:
1#include
23unsigned
char
highAndLowShiftHEX(unsigned
char
);4void
printBin(int
);56int
main
()
{78
highAndLowShiftHEX(209);9
return
0;10}1112unsigned
char
highAndLowShiftHEX(unsigned
char
data)
13{
14
data=(data>4);
15
data=((data=
0;
i
--)//略去高位0.33
{34
if(n35
}3637
for(;i>=0;
i
--)38
printf("%d",
(n39}
交換字節(jié)的高低位并不是一個(gè)很常見的問題,遇到該問題時(shí),需要經(jīng)過(guò)仔細(xì)的分析,加上對(duì)(C語(yǔ)言)位操作的熟練掌握,就能夠很好的解決這一類的問題。
擴(kuò)展
那么,我們將其擴(kuò)展到16位半字?jǐn)?shù)據(jù)的高低位轉(zhuǎn)換。
其實(shí)原理是跟8位的時(shí)候是一樣的,采用簡(jiǎn)單的移位方式對(duì)數(shù)據(jù)的高低位進(jìn)行轉(zhuǎn)換。熟悉位操作的話代碼就相對(duì)簡(jiǎn)單了。
下面是對(duì)該思路的具體實(shí)現(xiàn):
1#include
23void
expandPrintBin(int
val2);4unsigned
short
HighAndLowSwitchHEX(unsigned
short
data);56int
main
()
{78
HighAndLowSwitchHEX(38491);9
return
0;10}111213//由于二進(jìn)制直觀,故寫了一個(gè)擴(kuò)展的打印二進(jìn)制的函數(shù)14void
expandPrintBin(int
val2)15{16
int
i,k;17
unsigned
char
*p
=
(unsigned
char*)
//從低位到高位,低端字節(jié)計(jì)算機(jī)18
for(
k
=
0;
k
=
0;
i--)22
{23
if(val2
25
else26
printf("0");27
}28
printf("
");29
}30}31unsigned
short
HighAndLowSwitchHEX(unsigned
short
data)32{33
unsigned
char
i
=
0;34
unsigned
short
temp
=
0x0000;3536
for(i
=
0;
i
>
i)
39
if(i
abcdefghijklmnop
目標(biāo)序列為:ponmlkjihgfedcba
流程圖如下所示:
由此完成了整個(gè)位的逆序轉(zhuǎn)換,完成了(算法)的拓展,以1001011001011011為例,下面是具體的實(shí)現(xiàn)代碼:
1#include
23unsigned
short
highAndLowShiftHEX(unsigned
short
data);4void
expandPrintBin(int
val2);56int
main
()
{78
highAndLowShiftHEX(38491);9
return
0;10}1112unsigned
short
highAndLowShiftHEX(unsigned
short
data)13{14
data
=
(data
>
8);
//010110111001011015
data
=
((data
=
0;
i--)32
{33
if(val2
35
else36
printf("0");37
}38
printf("
");39
}4
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廚房金屬器具的營(yíng)銷策略與市場(chǎng)定位考核試卷
- 中醫(yī)藥現(xiàn)代化技術(shù)與產(chǎn)品研發(fā)計(jì)劃
- 在線教育平臺(tái)培訓(xùn)服務(wù)合同
- 企業(yè)內(nèi)訓(xùn)工作坊規(guī)劃指南
- 在線教育領(lǐng)域教育信息化平臺(tái)建設(shè)及運(yùn)營(yíng)策略研究
- 文娛休閑產(chǎn)業(yè)活動(dòng)策劃與組織實(shí)施方案
- 兒童青少年生長(zhǎng)發(fā)育與健康考核試卷
- 工業(yè)控制計(jì)算機(jī)在智能農(nóng)業(yè)作物生長(zhǎng)監(jiān)控系統(tǒng)中的應(yīng)用考核試卷
- 金融科技行業(yè)區(qū)塊鏈技術(shù)應(yīng)用研究與發(fā)展方案設(shè)計(jì)
- 珠寶玉石產(chǎn)業(yè)市場(chǎng)分析與品牌推廣策略研究報(bào)告書
- 工業(yè)自動(dòng)化生產(chǎn)線操作手冊(cè)
- 2024年就業(yè)協(xié)議書樣本
- 物理學(xué)與人類文明學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 實(shí)驗(yàn)室安全準(zhǔn)入教育學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 醫(yī)學(xué)教程 《精神衛(wèi)生法》解讀
- 人教版小學(xué)三年級(jí)數(shù)學(xué)上冊(cè)期末復(fù)習(xí)解答題應(yīng)用題大全50題含答案
- 中外廣告史(第三版) 課件 何玉杰 第10、11章 美國(guó)廣告的發(fā)展、日本廣告的發(fā)展
- 2024部編版語(yǔ)文一年級(jí)上冊(cè)第六單元大單元備課
- 意識(shí)形態(tài)分析研判制度
- Unit 6 I will bring a big bottle of orange juice(教學(xué)設(shè)計(jì))-2024-2025學(xué)年湘少版(三起)英語(yǔ)六年級(jí)上冊(cè)
- 2024年秋新人教版生物七年級(jí)上冊(cè)課件 第二章 認(rèn)識(shí)細(xì)胞 1.2.1 學(xué)習(xí)使用顯微鏡
評(píng)論
0/150
提交評(píng)論