일부 C++ 코드를 Java 코드로 이식하고 있습니다.java long 데이터 유형을 부호없는 값으로 변환
Java에서 64 비트를 저장할 수있는 부호없는 데이터 유형이 없습니다.
자바의 long
데이터 형식 (물론 서명 됨)에 저장된 해시 코드가 있습니다.
long vp = hashcode/38; // hashcode is of type 'long'
여기서 38은 2보다 크므로, 결과 숫자는 java의 다른 산술에 안전하게 사용할 수 있습니다.
'hashcode'의 부호있는 비트가 1로 설정되면 질문이 생깁니다. 변수 vp에 음수 값을 넣고 싶지 않습니다. 데이터 유형이 부호없는 것 인 것처럼 긍정적 인 값을 원했습니다.
P .: 성능 문제로 인해 Biginteger를 사용하고 싶지 않습니다.
나는 당신의 질문을 이해하지 못한다. 철자를 확인하십시오. –
2의 보수 64 비트입니다. ([spec] (http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html) – ignis
C++에서 얻은 정확한 값을 다시 얻어야합니까? – EJP