我想通過僅使用移位操作來嘗試從一個字節中僅獲取右邊的四個位,但它有時有效,有時不會,但我不會不明白爲什麼。只使用移位操作從一個字節中獲取右邊的四位
下面是一個例子:
unsigned char b = foo; //say foo is 1000 1010
unsigned char temp=0u;
temp |= ((b << 4) >> 4);//I want this to be 00001010
PS:我知道我可以使用一個mask=F
做temp =(mask&=b)
。
它是如何不工作?你能給個例子嗎? –
@EugeneSh。現在我看到了我在代碼中所做的事情,所以這不是爲什麼它不起作用。 – shinzou
我認爲'temp = foo & 0xf;'會是更好的方法...... – twalberg