2017-12-14 27 views
1

Groovy를 사용하여 16 진수 값을 생성하려고하지만 때로는 잘못된 16 진수 값을 생성합니다.Groovy를 사용하여 16 진수 값 생성

그루비 코드 :

def randomuserserial = Long.toUnsignedString(new Random().nextLong(), 16).toUpperCase() 
log.info randomuserserial 

예 : 그것은 'C9786B0146A68638'를 생성하고 난 소수점 오류로 변환하는 경우는

+0

코드를 제공 어디 16 진수를 다시 long으로 변환합니다. – daggett

+0

온라인 변환기 사용. http://www.binaryhexconverter.com/hex-to-decimal-converter – rAJ

답변

2

'진수 번호가 7fffffffffffffff 다음 작아야합니다'표시되지만이 변환기는 진수 숫자 낮은 받아 다음 7fffffffffffffff

그것은 단지 긍정적 진수 제로

사용할 수를 받아들이는 것을 의미 ABS() 메소드는 7fffffffffffffff 다음 숫자는 더 큰 구문 분석 할 수 자바/그루비 다른 한편으로는 16 진수 문자열

Long.toUnsignedString(new Random().nextLong().abs(), 16).toUpperCase() 

에 육각 파서를 변환하기 전에 양에 음수를 변환 :

def s='C9786B0146A68638' 
def i = Long.parseUnsignedLong(s, 16) 
println i 
+0

이제는 변환 후에 양수 십진수를 갖는 HEX 값만 생성됩니다. – rAJ

+0

오른쪽. 파서가 이것을 요구하기 때문입니다. – daggett