掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
フラグフィルの仕方を教えてください (ID:63134)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
こんにちは。 フラグフィルのコードを作ってみたのですが、 start_bit=0で "mask = mask >> (WORD_WIDTH - start_bit);" が"0"にならずに"0xffffffff"になるのですが、これはどういうことなのでしょうか。算術右シフトをしているのでしょうか? よろしくお願いします。 #define MASK 0xffffffff #define WORD_WIDTH 32 int flag_fill (int fill_data, int target_data, int width, int start_bit) { int source_lsb, source_msb, filled_data, out_data; unsigned int mask; mask = MASK; printf("mask = %x", mask); mask = mask >> (WORD_WIDTH - start_bit); printf("mask = %x", mask); source_lsb = target_data & mask; mask = MASK; printf("mask = %x", mask); mask = mask >> (WORD_WIDTH - (width + start_bit)); printf("mask = %x", mask); source_msb = target_data & ~mask; filled_data = fill_data; filled_data = filled_data & mask; filled_data = filled_data << start_bit; out_data = source_msb | source_lsb | filled_data; return out_data; }
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.