DOBON.NETプログラミング掲示板過去ログ
ビット演算
題名: ビット演算
著者: 七資産
日時: 2005/09/30 4:57:50
ID: 13029
この記事の返信元:
(なし)
この記事への返信:
[13033]
Re[1]: ビット演算
ぺがらぼ
2005/09/30 7:58:49
ツリーを表示
環境/言語:[VB.NET]
分類:[.NET]
VisualBasic .NETでビット演算をする方法がわかりません・・・
ふつうにAND演算をしてみたところ一部で演算結果が異常になりました。
&H123456789 And &HFFFFFFFF
の結果が本来&H23456789と結果が出るはずのところ
なぜか&H123456789になってしまいます。
調べてみたところ
ttp://www.microsoft.com/japan/msdn/vs/vb6/vb6tovbdotnet.asp
で
> Visual Basic .NET では、ビット演算を行うための新しい演算子のセット、BitAnd、BitOr、BitNot、および BitXor が言語に追加されています。
の一文を発見したのですが、そのようなものは発見できず・・・
このページによればVB.NETのAnd演算は論理演算のみ可能でビット演算は
出来ないとのことです。
どのようにすればビット演算を正常に出来るのでしょうか?
題名: Re[1]: ビット演算
著者: ぺがらぼ
URL:
http://pegalabo.net/
日時: 2005/09/30 7:58:49
ID: 13033
この記事の返信元:
[13029]
ビット演算
七資産
2005/09/30 4:57:50
この記事への返信:
[13070]
Re[2]: ビット演算
七資産
2005/10/02 16:36:20
[解決]
ツリーを表示
デバッグしてみるとわかるのですが、
実は、&HFFFFFFFFは結果として、変数内では-1(10進数)となり、
演算時、ビット上では、
0001 0010 0011 0100 0101 0110 0111 1000 1001
AND
1111 1111 1111 1111 1111 1111 1111 1111 1111
となってしまうのです。
これを避ける為には、
&HFFFFFFFFを&H0FFFFFFFFで解決すると思いがちですが、[0]は自動補正によって消されてしまいます。
したがって、&HFFFFFFFFL(ロング型強制)もしくは&HFFFFFFFF&(レガシー)
で行ってください。
とりあえず、Micorsoftの参考サイト:ttp://www.microsoft.com/japan/msdn/net/vbnetref/vbnetref3-4.asp
題名: Re[2]: ビット演算
著者: 七資産
日時: 2005/10/02 16:36:20
ID: 13070
この記事の返信元:
[13033]
Re[1]: ビット演算
ぺがらぼ
2005/09/30 7:58:49
この記事への返信:
(なし)
ツリーを表示
返信ありがとうございます。
教えていただいたとおりにやってみたらできました。
解決済み!
DOBON.NET
|
プログラミング道
|
プログラミング掲示板
分類:[.NET]
VisualBasic .NETでビット演算をする方法がわかりません・・・
ふつうにAND演算をしてみたところ一部で演算結果が異常になりました。
&H123456789 And &HFFFFFFFF
の結果が本来&H23456789と結果が出るはずのところ
なぜか&H123456789になってしまいます。
調べてみたところ
ttp://www.microsoft.com/japan/msdn/vs/vb6/vb6tovbdotnet.asp
で
> Visual Basic .NET では、ビット演算を行うための新しい演算子のセット、BitAnd、BitOr、BitNot、および BitXor が言語に追加されています。
の一文を発見したのですが、そのようなものは発見できず・・・
このページによればVB.NETのAnd演算は論理演算のみ可能でビット演算は
出来ないとのことです。
どのようにすればビット演算を正常に出来るのでしょうか?