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
로 초기 = 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
무엇? 아니, 그게 문제가 아니야 :) –