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