0
Groovy (또는 자바)에서 12 비트 수를 32 비트로 확장하려면 서명하고 싶습니다. C/C++ 등에서 다양한 레시피를 찾을 수 있지만 Groovy/Java에서는 그렇지 않습니다. 누군가 알고리즘이나 코드 조각을 줄 수 있습니까? 덕분Java/Groovy의 고정 비트 폭에서 부호 확장
Groovy (또는 자바)에서 12 비트 수를 32 비트로 확장하려면 서명하고 싶습니다. C/C++ 등에서 다양한 레시피를 찾을 수 있지만 Groovy/Java에서는 그렇지 않습니다. 누군가 알고리즘이나 코드 조각을 줄 수 있습니까? 덕분Java/Groovy의 고정 비트 폭에서 부호 확장
는 @harold한다 :
(x << 20) >> 20 or (x^0x800) - 0x800, whichever you like best/is more convenient. The first is easier to understand but it rarely gives further possibilities for simplification
알고리즘은 "레시피"이다. C에 적용되는 것과 동일한 알고리즘을 Java에 적용 할 수 있습니다. – TDG
'(x << 20) >> 20' 또는'(x^0x800) - 0x800') 가장 좋아하는 것이 더 편리합니다. 첫 번째는 이해하기 쉽지만 단순화를위한 가능성은 거의 없습니다. – harold
@harold, 나는 볼 수 있습니다. 산술적이지 논리적 인 변화가 아니라면, 두 번째 코드는 어떻게 작동 하나 첫 번째 코드는 작동하지 않는가? – adrianmcmenamin