C言語のビット演算の小言

ちょっとした小言というか、潔癖症だからこそ気になった点です。同級生のソースコードを眺めていて発見しました。

操作したいビットに1を立てた定数を用いるべき

ひとことで、このようになるでしょうか。ソースコードを見れば一発です。

main(){
	char a = 0x87;	/* 1000 0111 */
	
	a |= 0x48;		/* 0x00 x000 を1にしたい時 */
	
//	a &= 0x78;		/* x000 0xxx を0にしたい時はこう書かずに、 */
	a &= ~0x87;		/* こう書いて欲しい */
}

どのビットを操作する演算なのかを明確にするためにも、後者を使って欲しいものです。

コメントを残す

メールアドレスが公開されることはありません。