-1

メモリ ロケーションの追加に関して、Java のヘルプが必要です。

現在のメモリ位置が にfffffff8あり、オフセットが である+10場合、Java では の値を取得しますが、値を の代わりに100000008したい場合、どのように実行すればよいですか?また、この計算を実行している現在のコードは最適化されていますか? ?0000 0000 0000 00080000 0001 0000 0008

現在、私が使用しているコードは次のとおりです。

long a = Long.parseLong("fffffff8",16) + Long.parseLong("10",16);
String x = Long.toHexString(a);
4

2 に答える 2

2

32 ビット演算を実行したいようですがlong、そもそもなぜ使用しているのですか?

を使用するだけintで、必要なものが得られます。

int a = 0xfffffff8 + 0x10;

を与えます8

そして、トーマスが言ったように、どこかから文字列を渡されない限り、使用する必要がないLong.parseLong()Integer.parseInt()、数値リテラルを16進形式で直接記述できるためです。

于 2012-06-05T17:21:55.347 に答える
1

Javaでメモリの場所を手動でいじりたい理由はわかりませんが、長いものを切り詰める必要がある場合は、これでうまくいくはずです。また、文字列として送信するユーザー入力/ネットワークから long を受け入れていない限り、parseLong の代わりに 0x#### が機能します。

long a = 0xfffffff8L + 0x10L;
long b = a & 0xffffffffL;

編集:定数の最後にあるLを省略しました。

于 2012-06-05T17:21:51.003 に答える