진법 변환의 필요성
프로그래머가 편하게 내부데이터를 표현하기 위함
(컴퓨터는 2진수를 이용하고 사람은 10진수를 편리하게 사용함)
기수법
로마식 기수법(Ⅰ,Ⅱ, Ⅲ, ...)
중국식 기수법(一, 二, 三, ...)
인도식 기수법(1, 2, 3, ...)
현재 널리 사용되는 기수법은 인도식 기수법
진법과 진수
진법은 기수법에서 각 자리수의 범위가 몇인지를 나타내는 단위
2진법 : 0,1로 수를 표현
8진법 : 0~7로 수를 표현
10진법 : 0~9로 수를 표현
16진법 : 0~9,A,B,C,D,E,F 16자리로 수를 표현
진법 표시
1(2), 1(8), 1(10), 1(16)... "(xx)" 괄호 안에 있는 숫자가 진법
진법 변환
진법 변환은 기존에 표현 되던 진법의 진수를 다른 진법의 진수로 바꾸는 방법
2진수의 진법 변환
2진수 -> 10진수
ex) 1001(2) -> 9(10)
2진수 -> 8진수
2진수 -> 10진수 -> 8진수
2진수 -> 16진수
2진수 -> 10진수 -> 16진수
8진수의 진법 변환
8진수 -> 2진수
8진수 -> 10진수 -> 2진수
8진수 -> 10진수
8진수 -> 10진수
8진수 -> 16진수
8진수 -> 10진수 -> 16진수
10진수의 진법 변환
10진수 -> 2진수
ex) 9(10) -> 1001(2)
실수의 진법 변환
정수부와 실수부를 나누어 따로 구한다.
ex) 13.3(10) -> 1101.010011001100110011... (2)
(1) 정수부분 13의 경우
일반적인 10진수 -> 2진수 변환법을 이용함
13(10) -> 1101(2)
(2) 실수부분 0.3의 경우
2를 곱하여 1.0 보다 작을 경우 "0", 1.0보다 클 경우 "1"을 구해 순환하는 값을 찾는다.
16진수의 진법 변환
16진수에서 10진수나 2진수로 변환시에는 아래 표를 참고하여 변환을 한다.
ex) 5A(16) -> 0101 1010(2)
A : 1010
5 : 0101
ex) 5A(16) -> 90(10)
A : 10 * 16^0 = 10
5 : 5 * 16^1 = 80
10 + 80 = 90