Java로 포팅을 시도하고 해결할 수없는 문제가있는 C++ 코드가 있습니다.Java 및 C++의 비트 시프 팅 차이 - 조정 방법
예를 보면 쉽게 알 수 있습니다. C++ 코드의 일부 단계에서 부호없는 int h 값이 594076817입니다. 그런 다음 계산합니다 (h < < 10). 나는 결과를 얻을 2744271872.
자바에서 나는 오랫동안 594076817. 그때 계산 (시간 < < 10)를하고 난 608334660608.
이 이해받을/용의자이 표현의 차이 때문이다 (서명되지 않은 대 서명 됨) 그리고 아무런 도움없이 그 라인들을 따라 읽기를 시도했다. C++ 코드와 동일한 결과를 얻으려면 Java 코드를 얻는 가장 좋은 방법은 무엇입니까?
이것은 32 비트 대 64 비트 문제와 비슷합니다. Java에서 가져 오는 값은 수학적으로 정확합니다. –
비트 AND와 0xFFFFFFFFL? – harold