티스토리 뷰

이 카테고리에서는 단순히 수학적 공식 혹은 지식을 깊게 다루진 않는다.

프로그래밍과 연관 지어서 유용하게 사용할 수 있는 수학적 지식을 다룬다. 


 

정수를 이진수로 변환하는 법은 알고 있다는 가정하에, 소수점을 이진수로 변환하는 방법이다.

 

정수부도 2의 N승으로 표현이 가능하다는 전제하에 소수점도 마찬가지로 표현할 수 있다. 

 

예를 들어, 숫자 7 은 2^2 + 2^1 + 2^0 으로 110₂ 로 표현이 가능하다.

이를 똑같이 소수부에 적용한다면 숫자 0.75 는 2^(-1) + 2^(-2) 으로 0.11₂ 로 표현이 가능하다.

따라서 만약 7.75를 이진수로 표현한다면 110.11₂ 이다

 

추가로 아래 예들을 확인해보자

 



7.5

1. 정수부 : 7 => 111(2)
2. 소수부 : 0.5
  -> 0.5 x 2 = 1.0 

위에서부터 차례로 가져온다면
111.1₂

3.14

1. 정수부 : 3 => 11(2)
2. 소수부 : 0.14
  -> 0.14 x 2 = 0.28
  -> 0.28 x 2 = 0.56
  -> 0.56 x 2 = 1.12 (정수부는 버린다)
  -> 0.12 x 2 = 0.24 
  -> 0.24 x 2 = 0.48
  -> 0.48 x 2 = 0.96
  -> 0.96 x 2 = 1.92 (정수부는 버린다)
  -> ... 

위에서부터 차례로 가져온다면
11.0010001....

그렇다면 아래 숫자는 어떻게 바뀔까?

32.625

더보기

1. 정수부 : 32 => 100000(2)
2. 소수부 : 0.625
  -> 0.625 x 2 = 1.25(정수부는 버린다)
  -> 0.25 x 2 = 0.5
  -> 0.5 x 2 = 1.0 

위에서부터 차례로 가져온다면
100000.101


 

 

이해했다면 아래 문제를 풀어보자. 

[C++] Interview Question : Binary to String (tistory.com)

 

[C++] Interview Question : Binary to String

Question 2진수를 문자열로 바꿔라 0.37와 같이 0과 1 사이의 실수가 double타입으로 주어졌을 때, 그 값을 2진수 형태로 출력하는 코드를 작성하라 제약사항 길이가 32이하인 문자열로 2진수로 정확하

googleyness.tistory.com

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함