JAVA
IEEE-754 Floating-Point Conversion
hex or bin ---> ieee 754 규칙으로 floating-point 변환을 예제로 설명>
* 주어진 값
Decimal :
66 200 0 0
Hex :
0x42 0xC8 0x00 0x00
Bin :
1000010 11001000 00000000 00000000
1) hex -> bin 으로 변경 (bin 32 자리)
Bin 1 (왼쪽기준) 자리 :
0->+
1->-
===> 예제에서는 왼쪽 1 자리가 값이 비어 있는데, 0 이란 뜻.
2) 왼쪽기준 2번째 자리부터 8개 자리 값을 decimal 변경해서, 127을 뺀다.
===> 1000010 1 -> 133(decimal) - 127 = 6 : 2의 6제곱 값을 말함.
3) 나머지 비트 자리 수를 가수로써 1 .10010000000000000000000 => 1.5625000
1) * 2) * 3) 을 모두 곱하면 결과값이 나옴. : 100.0000000
계산 참고용 사이트>
https://babbage.cs.qc.cuny.edu/IEEE-754.old/32bit.html
+++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++
> 자바에서는 Float.intBitsToFloat(int value); 를 사용하면 된다.
예제 ]
- b[i] 는 byte [], start 는 byte []에서 시작 값, length는 사용할 byte 개수
StringBuilder sb=new StringBuilder();
for(int i=start; i<(start+length); ++i){
sb.append(byteToBinaryString(b[i]));
}
int bits = Integer.parseInt(sb.toString(), 2);
Float result = Float.intBitsToFloat(bits);
댓글 없음:
댓글 쓰기