(질문)2진수를 8진수로 변환할때의 의문점.
안녕하세요.
현제 정보처리 산업기사 공부중인 학생입니다.
갑자기 궁금한 점이 생겨서 글을 올려봅니다.
책을 읽다보니
2진수=>8진수로 변환할 때에
-정수 부분은 소수점을 기준으로 왼쪽 방향으로 3자리씩
-소수 부분은 소수점을 기준으로 오른쪽 방향으로 3자리씩 묶어서 변환
소수 부분의 자릿수가 부족할 경우 0으로 채워서 자리수를 맞춤
(111010011.10111)2진수
2진수 111 010 011 . 101 110
8진수 7 2 3 . 5 6
(질문)
의문점은 소수부분의 자릿수가 부족할 경우 0으로 채워서 자리수를 맞추는 부분입니다.
0이 추가 됨으로써 8진수의 숫자가 커진것 같은데요 0을 포함 시킴으로써 더 큰 오차가 발생하는것 같습니다.
왜 저런 방법을 사용하는 건가요?
차라리 11을 마지막에 0을 포함시키지 않고 8진수 3으로 본다면 오차가 더 줄어드는걸 확인했습니다.
꼭 뒤에 0을 붙여서 처리하는 이유가 궁금합니다.
위의 예제를 테스트해 본 결과 입니다.
-2진수
0.10111 을 10진수로 변환 0.6875
-뒤에 0을 붙여서 3자리씩 끊어서 8진수로 만든것을 10진수로 변환 0.71875 <처음 2진수와의 오차 0.03125>
(111010011.10111)2진수
2진수 111 010 011 . 101 110
8진수 7 2 3 . 5 6
-뒤에 0을 붙이지 않고 나머지 2자리를 8진수로 만든것을 10진수로 변환 0.671875 <처음 2진수와의 오차 0.15625>
(111010011.10111)2진수
2진수 111 010 011 . 101 11
8진수 7 2 3 . 5 3
잠깐 호기심이 생겼는데 이렇게 글까지 올리게 되었네요;;
글을 다 쓰고 보니 뒤에 0을 붙여서 처리 하는게 처리하기 편해서 저렇게 하기로 결정한것 같다는 생각도 드네요.
그럼 즐거운 하루 되세요.~
0.10111 은 십진수로
0.10111 은 십진수로 0.71875 입니다. :)
ㅡ.ㅡ 그렇네요
ㅡ.ㅡ 그렇네요 이상한 질문 드려서 죄송하고 답변 감사드립니다.
댓글 달기