문제

나는 단일 정밀 부동물 지점 번호를 4 개의 바이트 (Sign/Ecconent/Mantissa)의 ASCII 표현으로 변환하려고합니다. 내 현재 코드는 다음과 같습니다.

Integer.toString(Float.floatToRawIntBits(f),16);

Float.floatToRawIntBits 동일한 바이트를 사용하여 정수를 만든 다음 Integer.toString ASCII 숫자를 16 진 양식으로 만듭니다 (따라서 Radix = 16 지정). 내 문제는 항상 8 개의 ASCII 문자와 옵션 '-'부호가 필요하다는 것입니다. Integer.toString 왼쪽 제로로 패딩하지 않습니다.

우아한 솔루션을 생각해 볼 수 있습니까?

감사.

도움이 되었습니까?

해결책

당신이 사용할 수있는 String.format ():

String.format("%08x", Float.floatToRawIntBits(f))

이것은 결과를 제로 패드하고 16 진수로 형식화합니다. 형식 문자열에 대한 세부 사항을 찾을 수 있습니다 여기.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top