// input, output, i, and k are uint16_t type
// It is assured that k is non-negative and "small enough"
// k = 4
// input = 0x3a44
output = 0;
for (i=k; i<16; i++){
if (input & 1<<i)
output = output | 1 <<(i-k);
}
ので、入力= 0011 1010 0100 0100 K = 4または0000 0000 0000 0100とのループは私が私を混乱さなんと12回このcスニペットは何をしますか?
を実行はifと出力部が作業している方法です、私は知っていますビット演算子&と|そして左シフトは、私がinput
でi
番目のビットがセットされている場合は、ループの全体的な機能は、出力で、その後i-k
番目のビットがi
ため、
非常に興味深い。 – DRVic
あなたの非常に狭い興味に対する非常に狭い興味。 – tubby