« Sleipnirで文字化け | メイン | 夢を見たらしい »
2005年11月30日
算術シフトと論理シフト
シフト演算には、あいたビットに0をうめる論理シフトと、シフトする前のそのビットの値をうめる算術シフトがある。
C言語でシフト演算といえば「>>」とか「<<」だが、コンパイラによっては、同じシフト演算子でも、論理シフトと算術シフトを区別してくれるらしい。
char型の変数でシフト演算をすると算術シフトに、unsigned char型の変数でシフト演算をすると論理シフトに、それぞれ勝手にしてくれるらしい。
便利なんだか不便なんだか・・・まあ勝手にあいたところに0が埋まる、と思い込むのがよくないわけだけど。
投稿者 akita : 2005年11月30日 12:11
トラックバック
このエントリーのトラックバックURL:
http://akita11.jp/mt/mt-tb.cgi/367