- 2진법과 16진법, 그리고 10진법.2022년 02월 25일 00시 13분 50초에 업로드 된 글입니다.작성자: sooooong_minseok
컴퓨터의 기본 언어는 0과 1이라고 할 수 있다.
0과 1은 하나의 비트를 의미한다. 비트 8개가 모여 1바이트를 형성한다.
1비트(0,1)는 두 가지 중 하나의 값을 저장할 수 있다.
2비트(0,1,2,3)으로 4가지
3비트는 8가지
4비트는 16가지의 값 중 하나를 저장할 수 있다.
만약 2진법 활용한다면 1비트 단위의 값으로 나타낼 수 있다.
하지만 16진법을 활용한다면 4비트 단위로 훨씬 넓은 범위의 값을 나타낼 수 있다.
그래서 16진법을 변환해서 사용하면 여러모로 쓰임이 좋다.
2진법과 16진법을 서로 변환하는 방법에 대해 알아보자.
아래 표는 4비트 단위의 2진수와 한자리 수의 16진수를 적은 표이다.
10진수 2진수 16진수 1 0001 1 2 0010 2 3 0011 3 4 0100 4 5 0101 5 6 0110 6 7 0111 7 8 1000 8 9 1001 9 10 1010 a 11 1011 b 12 1100 c 13 1101 d 14 1110 e 15 1111 f 16 10000 10 2진법 <-> 16진법 변환하는 방법.
위 표의 4비트 단위로 쪼개어 표시된 것을 그대로 표기하면 된다.
예. 1110/1001이라는 숫자를 16진법으로 전환해보자.
1110/1001 = 0xE9 이다.
맞는지 10진법으로 전환하고 비교해보자!
2^0x1 = 12^1x0 = 0
2^2x0 = 0
2^3x1 = 8
2^4x0 = 0
2^5x1 = 32
2^6x1 = 64
2^7x1 = 128 합 = 1+8+32+64+128 = 233
0xE9
14(E)x16^1 + 9 = 233
>> 값이 같음을 알 수 있다.
예2. 0xEA이라는 숫자를 2진법으로 전환해보자.
0xEA = 1110/1010이다.
맞는지 10진법으로 전환하고 비교해보자.
14(E)X16^1 + 10(A)X16^1 = 224 + 10 = 234
2^0x0 = 0
2^1x1 = 2
2^2x0 = 0
2^3x1 = 8
2^4x0 = 0
2^5x1 = 32
2^6x1 = 64
2^7x1 = 128 합 = 1+8+32+64+128 = 234
값이 같음을 알 수 있다.
위 표를 잘 암기 또는 이해해두면 2진법과 16진법을 쉽게 전환하여 이해할 수 있다.
앞으로 포인터 개념에서 많이 쓰인다고 하니 잘 이해해서 활용할 수 있도록 하자.
번외.(10진법 <->2진법, 16진법<->10진법)
1. 10진법 <->2진법으로 변환하는 방법. (이하 2진수는 모두 4비트 단위로 적음)
예. 30이라는 숫자를 2진법으로 전환해보자.
30 / 2 = 15 ... (나머지) 0
15 / 2 = 7 ... 1
7 / 2 = 3 ... 1
3 / 2 = 1 ... 1
거꾸로 올라가게 써서 0001/1110 = 30 이다.
위와 같은 방식 외에도 간단하게 암산을 하는 방법이 있다.
2^0 = 1
2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16
2^5 = 32
2^6 = 64
2^7 = 128
2^8 = 256
2^9 = 512
2^10 = 1024
를 외워둔다.
예를 들어 30이라는 숫자라면,
2^4 = 16 // 30-16 = 14 >>1
2^3 = 8 // 14-8 = 6 >>1
2^2 = 4 // 6-4 = 2 >>1
2^1 = 2 // 2-2 = 0 >>1
딱 떨어짐 0
0001/1110이라는 숫자가 나옴.
>>다시 2진수에서 10진수로 바뀌려면
0001/1110
첫째 자리 수부터
2^0x0 = 1
2^1x1 = 2
2^2x1 = 4
2^3x1 = 8
2^4x1 = 16 합 = 30이다.
2. 10진법 <->16진법으로 변환하는 방법.
예. 63이라는 숫자를 16진법으로 전환해보자.
63 / 16 = 3 ... 15(16진법에서 F)
3F
>>다시 16진수에서 10진수로 바뀌려면
63
16^1 X 3 + 16^1 X 15 = 63
'프로그래밍언어' 카테고리의 다른 글
행렬의 곱셈. (0) 2022.03.05 c언어 배열 요소의 개수 구하기 (0) 2022.03.01 2의 보수 정리.(컴퓨터의 음수표현) (0) 2022.02.23 메모리 단위(bit, byte, Kb, Mb, Gb, Tb ) (0) 2022.02.20 [프로그램] 어떤 숫자가 더 큰 숫자인가?! (0) 2022.02.16 다음글이 없습니다.이전글이 없습니다.댓글