목표 :
1. 진수에 대해서 이해해보자.
2. 바이너리(binary)를 이해해보자.
3. 비트연산자를 이해하고 그 활용법에 대해서 연구해보자.
진수의 개념 :
자릿수의 올림을 기준으로 정해진다.( 10진수기준으로 이름이 만들어 젔다. )
example 1)
( 2진수 ) 1 다음의 수가 존재 하지 않기 때문에 자릿수의 올림이 발생하였다. 1 0 = 2 ( 10진수 기준 )
( 3진수 ) 2 다음의 수가 존재 하기 않기 때문에 자릿수의 올림이 발생하였다. 1 0 = 3 ( 10진수 기준 )
.
.
.
( 8진수 ) 7 다음의 수가 존재 하지 않기 때문에 자릿우의 올림이 발생했다. 1 0 = 8( 10 진수 기준)
example 2)
2진수 | 3진수 | 4진수 | 5진수 | 6진수 | 7진수 | 8진수 | 9진수 | 10진수 | 11진수 | 12진수 | 13진수 | 14진수 | 15진수 | 16진수 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
10 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
11 | 10 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 |
100 | 11 | 10 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 |
101 | 12 | 11 | 10 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 |
110 | 20 | 12 | 11 | 10 | 6 | 6 | 6 | 6 | 6 | 6 | 6 | 6 | 6 | 6 |
111 | 21 | 13 | 12 | 11 | 10 | 7 | 7 | 7 | 7 | 7 | 7 | 7 | 7 | 7 |
1000 | 22 | 20 | 13 | 12 | 11 | 10 | 8 | 8 | 8 | 8 | 8 | 8 | 8 | 8 |
1001 | 100 | 21 | 14 | 13 | 12 | 11 | 10 | 9 | 9 | 9 | 9 | 9 | 9 | 9 |
1010 | 101 | 22 | 20 | 14 | 13 | 12 | 11 | 10 | A | A | A | A | A | A |
1011 | 102 | 23 | 21 | 15 | 14 | 13 | 12 | 11 | 10 | B | B | B | B | B |
1100 | 110 | 30 | 22 | 20 | 15 | 14 | 13 | 12 | 11 | 10 | C | C | C | C |
1101 | 111 | 31 | 23 | 21 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | D | D | D |
1110 | 112 | 32 | 24 | 22 | 20 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | E | E |
1111 | 120 | 33 | 30 | 23 | 21 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | F |
10000 | 121 | 100 | 31 | 24 | 22 | 20 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 |
10001 | 122 | 101 | 32 | 25 | 23 | 21 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 |
10010 | 200 | 102 | 33 | 30 | 24 | 22 | 20 | 18 | 17 | 16 | 15 | 14 | 13 | 12 |
10011 | 201 | 103 | 34 | 31 | 25 | 23 | 21 | 19 | 18 | 17 | 16 | 15 | 14 | 13 |
Tip :
우리는 왜 10진법을 사용하는지 이유에 대해서 한번도 생각 안해봤고 의문 또한 없었을 것 입니다.
그냥 마냥 편해서라고 생각하시는 분이 많이 있을거라 생각합니다.
하지만 인간의 손에 붙어 있는 손가락이 10개 이기 때문에 십진법을 썻다는 정설이 강합니다^^~
날짜를 셀때도 손가락을 접어가며 셈하잖아요?^^
그렇다면 왜 컴퓨터는 2진법을 사용할까요???
앞시간에 설명 드린 메모리 구조와도 관련이있습니다. 모든데이터를 저장하는 공간은 하나의 스위치로 이루워저있습니다. 이스위치가
올라가면 1 내려가면 0으로 되는 구조이기 때문입니다^^
다시 생각해 보면 또 왜 16진법을 쓸가요?
2의 4승으로이고 자릿수에 표현에 매우큰 이점이 있습니다.
음~ 1 byte = 8 bit 이루어저 있고 16진수 두자리로 표현할 수 있습니다.
11111111 ( 2 진수 ) = 255( 10 진수 ) = FF( 16진수 )
참 쉽죠~!? ㅎㅎ
#C언어, #C언어입문, #프로그램입문, #진수개념
'Programing - C > C Basic grammar ' 카테고리의 다른 글
029 비트 연산자 이해하기( |, &, ~, ^, <<, >> ) - 3 (0) | 2017.07.27 |
---|---|
029 비트 연산자 이해하기( |, &, ~, ^, <<, >> ) - 2 (0) | 2017.07.27 |
028 쉼표 연산자 ( , ) (0) | 2017.07.27 |
027 조건 연산자( (if)?(true):(false ) (0) | 2017.07.27 |
026 논리 연산자 이해하기(And, Or, Not) (0) | 2017.07.27 |