[Java-02] 변수(Variable) - 진법
1. 10진법과 2진법
- 컴퓨터는 2진수(0과 1)밖에 모르기 때문에 10진수로 입력하여도 2진수로 바뀌어 저장된다.
int age = 25;
보이는 것 실제 저장
age : 25 -------> age : 11001
2. 비트(bit)와 바이트(byte)
- 비트(bit, binary digit) : 한 자리의 2진수
- 1비트는 컴퓨터가 값을 저장할 수 있는 최소단위
- 바이트(byte) : 1비트 8개를 묶은 데이터의 기본단위
- 워드(word) : CPU가 한 번에 처리할 수 있는 데이터의 크기 (워드의 크기는 CPU의 성능에 따라 달라짐)
n비트로 표현할 수 있는 10진수
값의 개수 : 2n
값의 범위 : 0 ~ 2n-1
3. 8진법과 16진법
- 8진수 : 2진수 3자리를 한자리로 표현 (0~7 사용)
- 16진수 : 2진수 4자리를 한자리로 표현 (0~9, A~F 사용)
1) 2진수 -> 8진수
- 2진수를 뒤에서부터 '3자리'씩 끊어서 그에 해당하는 8진수로 바꿈
ex) 1010101100(2) = 1/010/101/100 = 1/2/5/4 = 1254(8)
2) 2진수 -> 16진수
- 2진수를 뒤에서부터 '4자리'씩 끊어서 그에 해당하는 16진수로 바꿈
ex) 1010101100(2) = 10/1010/1100 = 2/A/C = 2AC(16)
4. 정수의 진법 변환
1) 10진수 -> n진수
- n으로 나누고 나머지 값을 옆에 적는 것을 더 이상 나눌 수 없을 때까지 반복
- 나머지를 아래부터 위로 순서대로 적음
ex) 10진수를 2진수로 변환
46(10) = 101110(2)
2) n진수 -> 10진수
- 각 자리 수에 해당 단위의 값을 곱해서 모두 더함
ex) 10진수 123
123(10) = 100 + 20 + 3
= 1*102 + 2*101 + 3*100
ex) 2진수를 10진수로 변환
101110(2) = 1*25 + 0*24 + 1*23 + 1*22 + 1*21 + 0*20
= 1*32 + 0*16 + 1*8 + 1*4 + 1*2 + 0*1
= 32 + 8 + 4 + 2
= 46(10)
5. 실수의 진법 변환
1) 10진 소수점수 -> 2진 소수점수
- 10진 소수점수에 2를 계속 곱함
- 소수부만 가져와 계속 2를 곱함
- 소수부가 0이 될 때까지 반복
ex) 10진수 0.625를 2진수로 변환
0.625(10) = 0.101(2)
2) 2진 소수점수 ->10진 소수점수
- 1)과 같은 방법, 2대신 10을 곱함
ex) 2진수 0.101를 10진수로 변환
0.101(2) = 0.625(10)
0.101(2) = 1*2-1 + 0*2-2 + 1*2-3
= 1*0.5 + 0*0.25 + 1*0.125
= 0.5 + 0.125
= 0.625(10)
6. 음수의 2진 표현 - 2의 보수법
1) 2의 보수법
- 어떤 수의 'n의 보수' : 더했을 때 n이 되는 수
- 2
의 보수 관계에 있는 두 2진수를 더하면 (자리올림이 발생하고) 0이 됨
2진수 | 부호있는 10진수 |
0000 | 0 |
0001 | 1 |
0010 | 2 |
0011 | 3 |
0100 | 4 |
0101 | 5 |
0110 | 6 |
0111 | 7 |
1000 | -8 |
1001 | -7 |
1010 | -6 |
1011 | -5 |
1100 | -4 |
1101 | -3 |
1110 | -2 |
1111 | -1 |
ex) 0101(5)과 1011(-5)는 서로 2의 보수 관계에 있음
2) 2의 보수 구하기
2의 보수 = 1의 보수 + 1
- 1의 보수 : 0을 1로, 1을 0으로 바꿈
ex) 0101(2)의 2의 보수를 구하여라
0101(2)의 1의 보수 : 1010(2)
1010(2) + 1 = 1011(2)
3) 음수의 2진 표현 구하기
- 음수의 절대값을 2진수로 변환
- 1의 보수를 구함
- 1을 더해 2의 보수를 구함
ex) -5(10)를 2진수로 변환하라
-5(10) ----> 5(10) -----> 0101(2) ----> 1010(2) ----> 1011(2)
참고 - Java의 정석 3rd Edition (저자 : 남궁성, 출판 : 도우출판)