컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Tuesday, October 17, 2006

자바.Java] 실수를 16진수Hex로, float를 2진수로 변환, double형을 long비트로 출력


실수를 나타내는 비트들을 출력하는 방법입니다. 이러면 이진수로 출력이 됩니다. 이 2진수를 다시 10진수/16진수로 나타낼 수 있습니다. 그러나 이것은 실수를 정수로 반올림하는 등의 것은 아닙니다. 실수 45.72716f 를 정수로 변환하면, 45 나 46이 되어야 하겠지만, 여기서는 1110894749 라는 전혀 무관한 값이 나옵니다. 이것은 다만 실수가 어떤 비트들로 저장되는지를 보여주는 것입니다.


Java: 실수(float,double)를 16진수, 이진수로 변환


파일명: Foo.java
public class Foo {
  public static void main(String args[]) {

    int FB = Float.floatToRawIntBits(45.72716f);     //////// float
    System.out.println(FB);                          // 10진수로 출력
    System.out.format("0x%X%n", FB);                 // 16진수로 출력
    System.out.println(Integer.toBinaryString(FB));  // 2진수로 출력
    System.out.println(Float.intBitsToFloat(FB));    // 실수로 다시 변환


    System.out.println(); // 줄바꿈


    long LB = Double.doubleToRawLongBits(0.136764274171); //////// double
    System.out.println(LB);                          // 10진수로 출력
    System.out.format("0x%X%n", LB);                 // 16진수로 출력
    System.out.println(Long.toBinaryString(LB));     // 2진수로 출력
    System.out.println(Double.longBitsToDouble(LB)); // 실수로 다시 변환

  }
}



실행 결과:
D:\Z>javac Foo.java && java Foo
1110894749
0x4236E89D
1000010001101101110100010011101
45.72716

4594095472564088320
0x3FC1817DE269AE00
11111111000001100000010111110111100010011010011010111000000000
0.136764274171

D:\Z>



☞ 자바(Java)

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top