2016-07-11 8 views
0

番号を持つ文では、私は、この行が見つかりました:エクセルVBAと私は、Javaにエクセル上の古いVBAアプリを再度書いて

a = b and (c-1) 

B、Cは数字ですが、私はやってみましたとの数字で時計のタブと私は結果について困惑している

"5と3は" 1

"3と4は" 5

"123 55" に等しいが51

に等しい等しいです

、H80000000が、この数字は私がJavaをロードする必要がバイナリファイルを読み込むために使用されているが、これらの行の意味を理解することはできません-28416

に等しい 2147455232または&:

も持つラインまたはあります事前に

おかげ

ホセSuero

+0

「3と4」が0に等しいと思います。 –

答えて

0

これらは、使用しているAndOrとしてビット演算子:

ようなものについては
1 and 1 = 1 
1 and 0 = 0 and 1 = 0 and 0 = 0 

:= 1111011 123、= 0110111 55これは賢明なコンポーネントに行われる:バイナリ0 or 0 = 00 or 1 = 1 or 0 = 1 or 1 = 1

2147455232 or &H80000000 'a hex literal 

ある:

1111011 
and 0110111 
    ------- 
    0110011 <= 51 

Orもビット単位を使用しています:

10000000000000000000000000000000 
Or 01111111111111111001000100000000 
    -------------------------------- 
= 11111111111111111001000100000000 

この最後の数値は4294938880です。longに格納すると、4294938880 - 2^32 = -28416になります。どのような符号付きの数で起こることはOrショーであなたの一例として、少し注意が必要ですが、 -

Javaは、ビット単位の演算子(AndOrため|&)を装備しています。互換性のあるデータ型を使用していることを確認します(VBAコードで32ビット符号付き整数を使用する場合はJavaコードも使用する必要があります)。

+0

ありがとうございます!!!!!それだけです – josesuero