PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] bit位移請教
作者:
IOP14759
(iop14759)
2021-04-28 16:04:46
我想請問一下,位移是把最高(低)位元移除,最低(高)位元補0
假設有一個變數X=0xA5,我想要只取被移除的值
讓結果得到Y[8]={1,0,1,0,0,1,0,1},我該怎麼寫?
我現在的方式是
Y[0]=X&0x80; Y[0]=Y[0]>>7;
Y[1]=X&0x40; Y[1]=Y[1]>>6;
Y[2]=X&0x20; Y[2]=Y[2]>>5;...總共重覆8次
有辦法直接把X的最高位元移位到其他變數嗎?
作者:
nh60211as
2021-04-28 16:14:00
C++ 用 std::bitset?
作者:
MOONRAKER
(㊣牛鶴鰻毛人)
2021-04-28 16:30:00
八次可以寫成一個for loop阿
作者: FinanceBrain (heaven)
2021-04-28 17:49:00
迴圈搭配bitset 就做到了..
作者:
kobe8112
(小B)
2021-04-28 18:17:00
你的快是指要少打幾個程式碼還是執行時間快?
作者:
oToToT
(å±å©)
2021-04-28 20:17:00
建個表直接查?
作者:
chuegou
(chuegou)
2021-04-28 20:52:00
組語的RLCF或RRCF 把最旁邊的bit移到carry flag直接看carry flag來決定你的變數要填1還是0我是覺得Y[i] = (X&(1<<i)) ? 1:0; 就夠簡單易懂了阿 修正 不用再看carry flag 一律RLCF到空的暫存就是了
作者:
yoche2000
(Sushi Desu! 在下壽司)
2021-04-28 23:33:00
PIC? 純bitwise何不用他的 ASM
作者: yuichanprpr (有以ちゃん)
2021-04-29 00:02:00
for(i=0;i<8;i++) Y[i] = (X&(1<<i))>>i;
作者:
EdisonX
(卡卡獸)
2021-04-29 02:26:00
for(i=0, m=1;i<8;i++, m<<=1) Y[i] = ((X&m)!=0);
作者: joefaq (小瑜)
2021-04-30 15:43:00
看看用bitfield有沒有符合你的要求吧
繼續閱讀
[問題] 紅黑樹construct設root = nil遇到的問題
superme7
[問題] 一個讀取 uart 的 process
gn00618777
[問題] Quicksort選mid為pivot出現問題
superme7
Re: [問題] Code::Blocks環境#import MSXML問題
LPH66
[問題] Code::Blocks環境#import MSXML問題
paulri8924
[討論] 為何要向下編譯如此困難?
Matz
[問題] 關於Rvalue與RVO
DeepFapping
[問題] __packed type 傳遞問題
eleghost
[問題] QT 的QLabel如何改變文字背景顏色?
liu2007
[問題] 請問local變數在離開stack後為何能存取
Keitaro
Links
booklink
Contact Us: admin [ a t ] ucptt.com