반응형
10진수
- 0~9까지 10개의 숫자를 수로 표현
- 우리가 평소 사용하는 숫자 카운팅 방식
- 원리
- (두 자리수부터 적용)오른쪽 끝이 9일 때: 9 → 0
- 왼쪽 끝이 9일 때: 9 → 0(자신의 자리수는 0으로 되돌림) & 왼쪽 앞에 한 자리수를 추가
- 예시
- 9의 다음 수: 왼쪽 끝이 9이므로 0으로 만들고, 왼쪽 앞에 한 자리수를 추가하여 10
- 19의 다음 수: 오른쪽 끝이 9이므로 0으로 만들고, 왼쪽 끝이 1이므로 다음 단위인 2로 바꿔주어 20
- 99의 다음 수: 오른쪽 끝이 9이므로 0으로 만들고, 왼쪽 끝이 9이므로 자신의 자리수는 0으로 만들고 그 앞에 한 자리수를 추가하여 100
- 각 자리는 10의 거듭제곱
- 예시 설명
- 573 = 5 x 100 + 7 x 10 + 3 x 1 = 5×10² + 7×10¹ + 3×10⁰(어떤 수든 0승은 1이다)
- 예시 설명
2진수
- 0과 1 두 개의 숫자만으로 수를 표현
- 원리
- 오른쪽 끝이 0 → 1
- 오른쪽 끝이 1 → 0 & 옆자리로 1 넘김
- 예시
- 100의 다음 수: 오른쪽 끝이 0이므로 101
- 101의 다음 수: 오른쪽 끝이 1이므로 먼저 0으로 만들고, 옆자리로 1을 넘겨 110
16진수
- 0
F까지 16개의 숫자로 수를 표현
9와 A - 한 자리수로 0~15를 나타낼 수 있음
- 0~50까지 10진수와 16진수의 대응표10진수 16진수
0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 A 11 B 12 C 13 D 14 E 15 F 16 10 17 11 18 12 19 13 20 14 21 15 22 16 23 17 24 18 25 19 26 1A 27 1B 28 1C 29 1D 30 1E 31 1F 32 20 33 21 34 22 35 23 36 24 37 25 38 26 39 27 40 28 41 29 42 2A 43 2B 44 2C 45 2D 46 2E 47 2F 48 30 49 31 50 32
10진수 → 2진수
필요한 경우
- 서브넷 마스크 계산
- 예: 255.255.255.240을 2진수로 바꿔야 몇 비트가 네트워크/호스트인지 알 수 있음
- IP 주소와 서브넷 비교
- 어떤 IP가 같은 네트워크에 속하는지 판별하려면 10진수를 2진수로 바꿔 AND 연산해야 함
- 브로드캐스트 주소, 네트워크 주소 계산
- 호스트 비트 판별이 전부 2진수에서 이뤄짐
방법: “255.255.255.0을 2진수로 바꿔보자”
- 첫 번째: 2진수 8자리의 자리값으로 구하기
- IPv4는 점으로 나뉜 4개의 10진수(0~255)로 되어 있고, 각 칸(옥텟)은 8비트( WHY? 2진수 기준으로 한 개의 숫자당 1비트 차지, 점을 기준으로 한 칸에 8개의 자리수가 됨)
- 때문에 10진수 상태인 각 칸을 2진수 8자리로 바꾸면 됨
- 128 64 32 16 8 4 2 1
- 해당 10진수에서 위 값을 큰 것부터 뺄 수 있으면 1, 못 빼면 0을 적음(일명 가중치/자리값 방법)
- 255를 위 자리값으로 깎아보자(첫 번째~세 번째 옥텟 동일):
- 255 ≥ 128 → 1, 남은 값 127
- 127 ≥ 64 → 1, 남은 값 63
- 63 ≥ 32 → 1, 남은 값 31
- 31 ≥ 16 → 1, 남은 값 15
- 15 ≥ 8 → 1, 남은 값 7
- 7 ≥ 4 → 1, 남은 값 3
- 3 ≥ 2 → 1, 남은 값 1
- 1 ≥ 1 → 1, 남은 값 0⇒ 결과 비트: 11111111
- 0(네 번째 옥텟)
- 0 ≥ 128? 아니오 → 0
- 0 ≥ 64? 아니오 → 0
- …
- 0 ≥ 1? 아니오 → 0⇒ 결과 비트: 00000000
- 0은 어느 자리값도 뺄 수 없다:
- 옥텟을 이어 쓰면 11111111.11111111.11111111.00000000
- 두 번째: 2로 나누기
- 255 ÷ 2 = 127 …1
- 127 ÷ 2 = 63 …1
- 63 ÷ 2 = 31 …1
- 31 ÷ 2 = 15…1
- 15 ÷ 2 = 7 …1
- 7 ÷ 2 = 3 …1
- 3 ÷ 2 = 1 …1
2진수 → 10진수
필요한 경우
- IP 주소 해석
- IP나 서브넷 마스크를 2진수로 표현한 뒤, 사람이 이해하기 위해 다시 10진수로 변환 예: 11000000.10101000.00000001.00000001 → 192.168.1.1
- 네트워크 주소 계산
- 비트연산으로 나온 결과는 2진수라, 최종적으로는 10진수로 변환해서 네트워크 주소, 브로드캐스트 주소를 확인해야 함
방법
- 111111111= 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1
- = 255
- 1×2⁷ + 1×2⁶ + 1×2⁵ + 1×2⁴ + 1×2³ + 1×2² + 1×2¹ + 1×2⁰
- 2의 0승부터 포함하므로 2진수의 자리수에서 1을 뺀 만큼부터 거듭제곱을 시작한다.
- 11111111 은 8자리이므로 2의 7승부터 시작