- - PR -
シフト演算について
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2004-04-17 14:13
私は画像処理について学習しているのですが、
ちょっと困ったことがあります。 int f_a = 0xff000000 >> 24; という風にシフト演算をしてみたのですが、 どういうわけか値が(10進数で)-1となっているようなのです。 調べてみた結果、int型が扱える範囲を越えてしまっている ようなのですが、このシフト演算は正しく行われているのでしょうか? |
|
投稿日時: 2004-04-17 14:30
Javaは良く分かりませんが、算術シフトが行われているのではないでしょうか。
一番上位のビットが符号として扱われているのでは? その結果0xFFFFFFFFになってしまって十進数で-1になった、と。 |
|
投稿日時: 2004-04-17 14:52
左に0を埋めたい時は>>>演算子を使います。
http://www.atmarkit.co.jp/fjava/onepoint/java/jv13.html |
|
投稿日時: 2004-04-17 15:50
一郎さん、びしばしさん、素早い返信ありがとうございます。
演算子の使い方は大変参考になりました。 とりあえず、演算の仕方についてはわかりました。 質問していないところでまだ引っかかるところはあるのですが、 もう少し考えてみます。 ありがとうございました。 |
1
