-1

16 ビットの符号なし整数があり、その値は次のようになります。

byte_val1 = 1000000000000001

これから、これを右にシフトして、次のようにする必要があります。

  1100000000000000

私はこれをしました:

 byte_val1 = byte_val1 >> 1

と取得しbyte_val1 = 100000000000000ます。

その後、私はやった

  byte_val1 = byte_val1 Or &H80

しかし、私は望ましい結果を得られませんでした...代わりに私は得100000010000000ました。

では、その結果を得るにはどうすればよいでしょうか。

4

3 に答える 3

0

今回は当たりました。これは私がしました:

byte_val1 = byte_val1 >> 1

byte_val1 = byte_val1 Or &H8000

そしてそれはうまくいきました。

于 2013-02-28T06:07:02.467 に答える
0

符号なしのデータ型を使用しているため、符号ビットの伝播は発生していません。目的の結果を得るには、符号付き整数を使用します。

于 2013-02-28T06:03:55.707 に答える