본문 바로가기

컴퓨터/C언어

수학 ㅡ 2진수 16진수 변환하기

안녕하세요

2진수에 이어 오늘은 16진수에 대하여 알아보도록 하겠습니다.

16진수란 16가지의 문자로 숫자를 나타내는 방식입니다 . 

숫자는 10개인데 어떻게 16개로 나타내냐 이게궁금할것입니다


 10진수

16진수 

 1

 2

2

 3

 4

4

 5

 6

6

 7

 8

8

 9

10

A

 11 

B

 12 

 C 

13 

 D 

14 

15

F

16

10 


대충 이해가 가시나요?

자릿수가 올라가는게 10진수는 10번째에서 이지만

16진수에선 16번째에서 자릿수가 올라가는걸 알수 있습니다

컴퓨터에서 표기하는 방법은

0x 를 접두사로 붙이고 숫자를 쓰는것 입니다.

그냥 수학에서 표기하는건 


이런식으로 표기를 한다고 하네요.

일단 16진수로 변환하기 편하게 10진수를

2진수로 바꿔줍니다.

그런뒤 2진수를 4개씩 끊어서 16진수로 바꿔주면 됩니다.

예를들면


2015 라는 숫자를

2진수로 바꾸면

11111011111입니다

여기서 중요한건 4개씩 나눌때

111 1101 1111 이렇게 나눈다음

맨 앞자리에 부족한곳에 0 을 붙여서

0111 1101 1111 로 표기합니다

이제 

저거를 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

X X X

이 표에 맞춰 작성하면 되는데 

2015의 경우

2진수로 0111 1101 1111이니

16진수로 7DF 로 나타낼 수 있습니다

반대로 쓰는거 또한 그대로 하면 되는데

7DF를 다시 10진수로 나타내려면 

숫자마다 4자리수로 나타내줍니다 

 7        D      F

0111   1101  1111

0111 1101 1111

이걸 이제 다시 10진수로 바꾸면

2015가 됩니다.

이런식으로 표기하고 계산하시면 되겠습니다



이상입니다.






여러분들의 댓글은 큰 힘이됩니다 :)