컴퓨터는 기본적으로 0과 1밖에 이해하지 못 한다.
0과 1이라하는것은 컴퓨터가 주고받는 전기신호의 세기가 약하다 혹은 세기가 쎄다를 0과 1이라고 표현한다.
비트는 0과 1을 표현하는 가장 작은 정보 단위이다.
1비트로는 2가지의 정보를 표현할 수 있다.
2비트로는 2^2 = 4가지
3비트로는 2^3 = 9가지이다.
1kB, 1MB, 1GB, 1TB는 1000개씩 묶은 단위 , kiB, MiB, GiB...는 1024개씩 묶은 단위
우리가 일상적으로 사용하는 십진수, 0과 1밖에 이해하지 못 하는 컴퓨터에게는 이진수로 알려줘야한다.
십진수 1000인지 이진수 1000인지 구별하기위해서 뒤에 아래첨자2를 표현(2) 혹은 0b 이진수라는 표식사용.
컴퓨터는 마이너스(-)를 인식하지 못 하기때문에 0과1만으로 음수를 표현해야함.
가장 대표적인 방법: 2의 보수법
2의보수를 더 쉽게 구하는 방법!!!
11 -> 모두 뒤집으로 00 -> 1더해서 01
01이된다..
1011 -> 0100으로 뒤집는다. -> 1을 더해서 0101
0101이된다.
0101 -> 1010으로 뒤집는다. -> 1을 더해서 1011
1011로 다시 돌아왔다.
의문!
1011의 보수표현은 0101
양수인지 음수인지 어떻게 알까??
겉모습으로 구분안됨
구분하기위해서 CPU내부에 플래그라는 레지스터가 있다.
플래그 레지스터에 음수인지 양수인지 표기해준다.
이진법으로 컴퓨터가 이해하는 0과1만으로 숫자를 표현할 수 있게 되었지만, 사람이 읽기에 숫자의 길이가 너무 길어진다.
십진수 32이면 두글자인데, 이진수로하면 여섯글자나 된다.
그래서 컴퓨터의 데이터를 표현할 십육진법도 많이 사용한다.
수가 15를 넘어가는 시점에 자리올림을 한다.
10 = A
11 = B
12 = C
13 = D
14 = E
15= F
16= 10(자리올림)
17 = 11
. .
. .
16진수 10이
십진수 10인지 16진수로 16인지 알수가 없다.
그래서 아래첨자(16) 이나 0x를 숫자앞에 붙인다.
코드로 사용되는 사례이며
빨간글씨가 16진수이다.
표기법대로 0x가 앞에 붙는다.
십육진수비로 표현된 하나를 이진수로 표현하면 몇 비트가 나올까? 2^4니깐 4비트가 나온다.
이진수로 변환할때 숫자 하나를 4비트라고 생각을 하고
1 , A , 2 , B를 각각 떼어내서
1 = 0001(2)-이거 아래첨자어케하지? 아래첨자(2)입니다.
A = 1010(2)
2 = 0010 (2)
B = 1011 (2)
이진수로 표현한뒤, 이걸 붙이면1A2B = 0001101000101011(2)
십육진수는 반대로 1101 , 0101 로 나누어
1101 -> 13 - >D(16)
0101 -> 5(16)
1101 = D5(16)
이진수랑 십진수으로도 충분할거같은데 십육진법은 왜 사용하는걸까!!!!!!!!!
답:가장 큰이유는, 이진수와 십육진수간의 변환이 쉽다!
이진수에서 십진수보다 압도적으로 쉽다