欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 14896|回復: 12
收起左側

完成8位數據高低位交換只需三步的代碼

  [復制鏈接]
ID:23515 發表于 2013-4-21 17:09 | 顯示全部樓層 |閱讀模式

蝶式交換法代碼:

unsigned char shift_fun2(unsigned char data)

{

data=(data<<4)|(data>>4);

data=((data<<2)&0xcc)|((data>>2)&0x33);

data=((data<<1)&0xaa)|((data>>1)&0x55);

return data;

}

在遇到交換字節位的問題時使用蝶式交換法和查表法來實現。查表法顧名思義即將一些值存到內存中

需要計算時查表即可但是也會占用額外的存儲空間。這里主要介紹一下蝶式交換法

設原始位為 1234  5678

data=(data<<4)|(data>>4);                          之后位序為 5678   1234

data=((data<<2)&0xcc)|((data>>2)&0x33);    之后位序為 7856   3412

data=((data<<1)&0xaa)|((data>>1)&0x55);    之后位序為 8765    4321

由此完成了整個位的逆序轉換

[此貼子已經被作者于2013-4-21 17:09:46編輯過]
回復

使用道具 舉報

ID:296837 發表于 2018-8-6 15:07 | 顯示全部樓層
sinxcosx 發表于 2018-1-13 11:17
代碼少,難看明白的代碼還是少用好

來來  給你解釋一下
設原始位為 1234  5678
data=(data<<4)|(data>>4);  //data<<4,數據左移4位,5678 000;data>>4,數據右移4位,0000 1234;|按位或  ,                      之后位序為 5678   1234
data=((data<<2)&0xcc)|((data>>2)&0x33); 5678 1234  data<<2左移2位,7812 3400;&按位與1100 1100,得7800 3400;data>>2,右移兩位,0056 7812,位與0011 0011,得0056 0012;位或之后位序為 7856   3412
data=((data<<1)&0xaa)|((data>>1)&0x55); 7856 3412左移一位8563 4120,位與1010 1010得8060 4020;右移一位 0785 6341,位與0101 0101得0705 0301,;位或之后位序為 8765    4321

評分

參與人數 1黑幣 +80 收起 理由
admin + 80 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:7485 發表于 2013-4-22 13:12 | 顯示全部樓層

........

[此貼子已經被作者于2013-4-22 13:14:11編輯過]
回復

使用道具 舉報

ID:138443 發表于 2017-11-15 21:14 | 顯示全部樓層
太好了,正要找的,謝謝了
回復

使用道具 舉報

ID:275494 發表于 2018-1-13 11:17 來自觸屏版 | 顯示全部樓層
代碼少,難看明白的代碼還是少用好
回復

使用道具 舉報

ID:262352 發表于 2021-8-4 14:25 | 顯示全部樓層
hk0506 發表于 2018-8-6 15:07
來來  給你解釋一下
設原始位為 1234  5678
data=(data4);  //data4,數據右移4位,0000 1234;|按位或  ...

這里,有data的作用域問題,
回復

使用道具 舉報

ID:981889 發表于 2021-12-5 20:27 來自觸屏版 | 顯示全部樓層
阿這...學到了,牛
回復

使用道具 舉報

ID:291668 發表于 2023-3-20 12:56 | 顯示全部樓層
傅里葉算法可以用到
回復

使用道具 舉報

ID:1029096 發表于 2023-3-23 20:36 | 顯示全部樓層
hk0506 發表于 2018-8-6 15:07
來來  給你解釋一下
設原始位為 1234  5678
data=(data4);  //data4,數據右移4位,0000 1234;|按位或  ...

太牛了吧
回復

使用道具 舉報

ID:373976 發表于 2024-5-28 18:01 | 顯示全部樓層
這是咋想出來的?
回復

使用道具 舉報

ID:160500 發表于 2024-5-29 13:17 | 顯示全部樓層
回復

使用道具 舉報

ID:1101997 發表于 2024-6-10 16:53 來自觸屏版 | 顯示全部樓層
有沒有算過能傳統兩字節左移右移快多少?
回復

使用道具 舉報

ID:561623 發表于 2024-9-11 16:55 | 顯示全部樓層
為什么不用結構+聯合,想換都行,何必搞這么復雜
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表