자바에서 부동소수점의 바이너리를 아는 방법이 뭘까요?
C언어로 친다면 다음과 같은 일을 해줄 수 있는 자바 코드를 짤 수 있을지가 궁금합니다.
float a; int b; a=10; b=*((int *)&a); printf("%f - %x",a,b); // 출력 : 10 - 41200000해당 코드는 부동소수점 자료형의 데이터를 포인터를 이용하여 강제로 고정소수점 자료형으로 인식 시킨후 그 값을 16진법으로 표현한것입니다.
C언어는 이렇게 포인터를 써서 쉽게 할 수 있는데 이러한 일을 자바에서도 할 수 있는지가 궁금하네요.
저런식으로 16진수의 8자리로 표시되는 것이 가장 좋고, 꼭 그렇지 않더라도 byte의 배열로 출력한다던지 라도 해서든 비슷한 일을 할 수 있으면 좋겠습니다.
55글자 더 채워주세요.
1개의 답변이 있어요!
java.nio.ByteBuffer를 사용하시면 될것 같습니다.
아래는 Double형을 byte array로 바꾸는 예제입니다.
import java.nio.ByteBuffer; public static byte[] toByteArray(double value) { byte[] bytes = new byte[8]; ByteBuffer.wrap(bytes).putDouble(value); return bytes; }