uint64_t 変数を N バイトずつマスクするのに苦労しています。N はわかりませんが、8 以下であることはわかっています。私の現在のコードは次のようになります。
// uint64_t n is given
uint64_t mask;
for( mask = 0x00; n; n--) {
mask = mask<<8 | 0xFF;
}
マスクを作成するため。ここで何が間違っていますか?
編集:
質問に答えました。とにかく、理解を深めるために:
次のようなマスクが欲しいです。
0x000000FF // or:
0x0000FFFF // or:
0x00FFFFFF
データから 1、2、またはそれ以上のバイトを取得します。コメントが言うように、私のコードは機能します! 他にバグがあったのかもしれません!