2019.03.08 TIL
(TIL은 스스로 이해한 것을 바탕으로 정리한 것으로 오류가 있을 수 있습니다)
오늘의 한마디:
지금 내 상황을 객관적으로 바라보고, 반성하자.
지금 온전히 집중할 수 있는 지금 이 순간이 내 인생의 최고이다.
if you think you can or if you think you can’t you are right.
기수법
프로그램에서 쓰는 수는
10진수(사람을 위한 수) 0,1,2,3,4,5,6,7,8,9 2진수( 컴퓨터를 위한) 0,1
16진수 ( 2진수를 더 쉽게 쓰기 위해) 0,1,2,3,4,5,6,7,8,9,10, a, b, c, d, e, f,
8진수(리눅스 등에서 씀)
각각 변환하는 것을 먼저 잘 할 수 있어야 한다.
계산기에 프로그래머 계산기가 있음
dec - 10진수
hex - 16진수
oct - 8진수
bin - 2진수
1. 10진수를 2진수로 바꾸는 방법
예를 들어서 설명해보자
50을 2진수로 바꾸어 보자
먼저 2의 제곱 중에 50에 가장 가까운 수를 찾는다. 2 ** 5 = 32
이후 남은 18에 가장 가까운 2의 제곱을 찾는다. 2 ** 4 == 16
남은 2에 대해 가장 가까운 2의 제곱 2 ** 1 = 2
이상 해결
이걸 직관적으로 적어보면
32 + 16 + 2 —–> 220010 (2)
ex)
- 47 —> 2 ** 5 (32) + 2 ** 3 (8) + 2 ** 2(4) + 2 ** 1(2) + 1 ===> 101111(2)
a = 0b1010 —> 2진수 표현 방법 hex(a) —> a를 16진수로 변환
c = 0xaf —> 16진수 표현 방법 bin(c)
2. 2진수를 10진수로 바꾸는 방법
2진수 위에
6543210 이렇게 숫자를 적는다.
1010110(2) -------> 64 + 16 + 4 + 2 = 86
예)
543210
110010(2) --------> 32 + 16 + 2 ===> 50
- 16진수를 2진수로 바꾸는 방법 16진수
0123456789abcdef
외워야 하는 것
a = 1010(2)
b = 1011(2)
c = 1100(2)
d = 1101(2)
e = 1110(2)
f = 1111(2)
16진수가 나오면 꼭 2개로 나누어서 2진법을 표현하자!!
ex ) fa(16) —> 1111 1010(2)
ex) 74(16) —> 0111 0100(2) #제일 앞에 의미 없는 0도 적어주면 좋다.
ex) 8d(16) —-> 1000 1101(2)
4. 2진수를 16진수로 바꾸는 방법
뒤에서 부터 4개씩 끊어준다. 그리고 그것을 하나씩 16진수로 바꾸어 준다.
제일 앞에 부족한 것은 00으로 채워준다.
1101110001(2) —-> 0011/0111/0001 —–> 3 7 1 (16)
1011110101(2) —–> 0010/1111/0101 —–> 2 f 5 (16)
100011110111(2) —–> 1000/1111/0111 —–> 8 f 7(16)