我想知道是否可以不使用遮罩来执行此操作?
带面具的样子:
int a=125;
mask=0b1110;
int A=a&mask;
但是我不知道如何使用移位和其他按位操作来做同样的事情
这里是怎么做:
int a = 125;
int A = (((a >> 2U) & 1) << 2U) | (((a >> 1U) & 1) << 1U) | (a & 1);
如果计算机上的int是32位,则可以这样做:
int a = 125;
int A = (a<<29)>>29;
但仅当a为正时有效