0
現在、16進値を使用するコードを作成しています。何らかの理由で、プログラム中に、16進数の値が32ビットのlong値から64ビットのlong値に変更されます。誰がなぜこれが起こっているのかについての洞察を提供できますか?値の長さが変更されました(Java)
final private long feedbackValue = 0x87654321;
private long state;
public void initialize(long initialValue) {
int count = 0;
state = feedbackValue^initialValue;
System.out.println("State "+count+":"+ String.format("0x%08X",state));
while (count < 8) {
update();
count++;
System.out.println("State "+count+":"+ String.format("0x%08x",state));
}
}//end initialize method
private void update() {
if ((state & 1) == 0) {
state = state >>> 1;
} else {
state = (state >>> 1)^feedbackValue;
}
}//end update method
ときはinitialValue = 0xffffffffと、ここでの結果である:それは長いとして読まれるように
State 0:0x789ABCDE
State 1:0x3c4d5e6f
State 2:0xffffffff9943ec16
State 3:0x7fffffffcca1f60b
State 4:0xc00000006135b824
State 5:0x60000000309adc12
State 6:0x30000000184d6e09
State 7:0xe7ffffff8b43f425
State 8:0x8c00000042c4b933
何ですか?いいえ、それは問題ではありません:) –