我使用位打開和關閉,這樣轉位:設置有點與另一個無符號的字符的另一位unsigned char型的無條件
unsigned char myChar = ...some value
myChar |= 0x01 << N // turn on the N-th bit
myChar &= ~(0x01 << N) //turn off the N-th bit
現在,假設N的值是知道的,但設置/取消設置操作取決於另一個無符號字符的位的值。 因爲現在,我做的是這樣的:
if ((otherChar & (0x01 << M)) != 0)
{
//M-th bit of otherChar is 1
myChar |= 0x01 << N;
}else
{
myChar &= ~(0x01 << N);
}
這應該是從unsigned char類型到另一種「移動位」的操作。
我的問題: 有沒有辦法做到這一點,而不使用條件? (也沒有std :: bitset)
當你說'N次bit',是再從零開始計數? – Nawaz
yes..zero based.Is this relevant? – Heisenbug