質問: INTEGER(0..2 ** 24 - 1)はuint32_t&0xFFFFFFですか? INTEGER(0 ... 2 24 - 1)の値を持つ型の変数が見つかりました。コードを作成した人が、uint32_t varのタイプの変数を入れることにしました。これの結果を0xFFFFFFで置きます how does this uint32_t & OxFFFFFF is able to handle the value of INTEGER (0...224 - 1) ? As I understand, with masking 0xFFFFFF you make the value to be all positive (or?) but how does this thing work, I think I miss a concept here.
回答: `0xffffff` でマスキングすると、保存された値が決して0..2 ^ 24-1の範囲外になってしまうだけです。下位24ビット以外のものは破棄されます。 たとえば、値 `-1` をマスクしてマスクすると、値は `0xffffff` になります。値は変更されましたが、有効な範囲内です。