こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ビット演算について

4バイトのデータの下位4ビットのみ変更したいとします。

int nInformation = hoge; // <-なんらかのデータ
int nFlg = 0x06; // <- nInformationの下位4ビットを書き換えるデータ

この場合、どうやって書き換えるのがスマートなやり方でしょうか。
とりあえず、
nInformation = ((nInformation&0xFFFFFFF0)|nFlg);
としてみたのですが、あんまりうまい気がしません。

よろしくお願いします。

投稿日時 - 2010-03-07 14:19:27

QNo.5732352

すぐに回答ほしいです

質問者が選んだベストアンサー

あえて変えるなら、定数とintのbit幅が合うように
nInformation = (nInformation & ~((int)0xf))| nFlg ) ;
とする位かなぁ。

投稿日時 - 2010-03-07 14:55:55

お礼

~((int)0xf)のほうが見た目がきれいで保守性が高そうですね。
ありがとうございました。

投稿日時 - 2010-03-07 15:01:52

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

zwi

それがベストです。
機械語でも、そうするのが一番効率が良いんですよ。

投稿日時 - 2010-03-07 14:46:10

あなたにオススメの質問