맨위로가기

십육진법

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

십육진법은 0부터 9까지의 숫자와 A부터 F까지의 문자를 사용하여 수를 표현하는 기수법이다. 16진법은 10진수 16을 기수로 하며, A~F는 각각 10~15에 해당한다. 16진수는 컴퓨터 프로그래밍 및 디지털 시스템에서 2진 데이터를 간결하게 표현하기 위해 널리 사용된다. 16진수는 2진수와 쉽게 변환할 수 있으며, 4자리 이진수를 1자리 16진수로 표현할 수 있다. 16진수는 웹 색상, URI 문자 인코딩, IPv6 주소, GUID 등 다양한 분야에서 활용된다. 16진법은 중국의 전통적인 측정 단위와 관련이 있으며, 16진법을 선호하는 시도가 있었으나, 현재는 컴퓨터 분야에서 주로 사용된다.

더 읽어볼만한 페이지

  • 기수법 - 이진법
    이진법은 0과 1 두 개의 숫자를 사용하는 밑이 2인 위치 기수법으로, 컴퓨터 과학의 기초가 되었으며 현대 컴퓨터에서 데이터를 저장하고 처리하는 데 사용된다.
  • 기수법 - 구진법
    구진법은 9를 밑으로 하는 위치 기수법으로 0부터 8까지의 숫자를 사용하여 수를 나타내며, 3의 배수 표현이 간결하고 3의 역수는 유한소수로 표현되는 특징이 있다.
십육진법
십육진법
십육진법의 숫자 표현 (0부터 F까지)
십육진법의 숫자 표현 (0부터 F까지)
진법기수 16
기호0 1 2 3 4 5 6 7 8 9 A B C D E F
사용
컴퓨터 과학색상 표현 (HTML, CSS)
메모리 주소
데이터 표현
변환
이진법에서 십육진법으로각 4자리 이진수를 십육진수 한 자리로 변환
십진법에서 십육진법으로16으로 반복적으로 나누고 나머지를 기록
명칭
다른 이름헥사데시멀 (hexadecimal)
헥스 (hex)
어원그리스어 "ἕξ" (héx, 여섯) + 라틴어 "decem" (열)
역사
기원컴퓨터 시스템에서 바이트를 표현하기 위한 방법으로 개발

2. 표기법

16진수, 10진수, 8진수, 2진수 비교


16진법은 0부터 9까지의 숫자와 A, B, C, D, E, F (또는 소문자 a, b, c, d, e, f)의 여섯 개의 알파벳을 사용하여 수를 표현한다. A, B, C, D, E, F는 각각 십진법 10, 11, 12, 13, 14, 15에 대응된다.[39]

16진수와 10진수의 대응
16진법0123456789ABCDEF
10진법0123456789101112131415



16진수 F32를 십진수로 환산하는 방법은 다음과 같다.

:F32 = F \times 16^2 + 3 \times 16 + 2 = 15 \times 16 \times 16 + 3 \times 16 + 2 = 3840 + 48 + 2 = 3890

수학에서는 16진수 뒤에 아래첨자 (16)을 붙여 구분하며, 컴퓨터 프로그래밍 언어에서는 '0x'나 'x', '$', '&H' 등을 붙여 구분한다.

2. 1. 16진수 표기 방법

16진수는 다양한 방법으로 표기될 수 있다. 수학에서는 16진수 뒤에 아래첨자 (16)을 붙여 십진수와 구분한다. 컴퓨터 프로그래밍 언어에서는 16진수 앞이나 뒤에 0x, x, $, &H 등의 구분자를 붙인다.

16진수10진수8진수2진수
0000000
1110001
2220010
3330011
4440100
5550101
6660110
7770111
88101000
99111001
A10121010
B11131011
C12141100
D13151101
E14161110
F15171111



대부분 문자 A–F (또는 a–f)는 10–15의 값을, 숫자 0–9는 십진수 값을 나타낸다. 대소문자 사용 규칙은 정해져 있지 않으며, 혼합된 경우도 있다. 일부 세븐 세그먼트 디스플레이는 A–F를 0–9와 구별하기 위해 대소문자를 섞어 쓰기도 한다.

긴 16진수 값은 쉼표 대신 공백으로 구분하기도 한다. 다음은 16진수 덤프의 예시다.



00000000 57 69 6b 69 70 65 64 69 61 2c 20 74 68 65 20 66

00000010 72 65 65 20 65 6e 63 79 63 6c 6f 70 65 64 69 61

00000020 20 74 68 61 74 20 61 6e 79 6f 6e 65 20 63 61 6e

00000030 20 65 64 69 74 0a



16진법은 다음과 같은 경우에 사용된다.

  • URI에서 문자 인코딩은 % 뒤에 16진수 쌍으로 표기된다. (예: http://www.example.com/name%20with%20spaces영어에서 %20은 공백 문자)
  • 유니코드에서 문자 값은 U+ 다음에 16진수 값으로 표시된다. (예: U+00A1은 느낌표 뒤집기)
  • HTML, CSS, X 윈도 시스템웹 색상은 # 뒤에 6개의 16진수 숫자로 표현된다. (예: 자홍색은 #FF00FF)
  • MIME quoted-printable 인코딩에서 문자 코드는 = 뒤에 16진수 쌍으로 작성된다. (예: 1=Espa=F1a는 "España")
  • PostScript 바이너리 데이터는 접두사 없이 연속된 16진수 쌍으로 표현된다. (예: AA213FD51B3801043FBC...)
  • 모든 IPv6 주소는 콜론으로 구분된 8개의 네 자리 16진수 그룹으로 작성된다. (예: 2001:0db8:85a3:0000:0000:8a2e:0370:7334)
  • Globally unique identifier는 하이픈으로 구분된 32개의 16진수로 작성된다. (예: 3F2504E0-4F89-41D3-9A0C-0305E82C3301)


9보다 큰 숫자를 나타내기 위해 A-F를 사용하는 것이 초기에는 보편적이지 않았다.

  • 1950년대 Bendix-14와 같은 일부 시스템은 숫자 위에 가로줄을 그어 표기했다.
  • SWAC(1950), Bendix G-15(1956)는 소문자 u, v, w, x, y, z를 사용했다.
  • ORDVAC 및 ILLIAC I(1952)는 대문자 K, S, N, J, F, L을 사용했다.
  • Librascope LGP-30(1956)은 F, G, J, K, Q, W를 사용했다.
  • PERM(1956)은 O, A-N, P를 사용했다.
  • Honeywell(하니웰) Datamatic D-1000(1957)은 b, c, d, e, f, g를, Elbit(엘비트) 100 (1967)은 B, C, D, E, F, G를 사용했다.
  • Monrobot XI(1960)는 S, T, U, V, W, X를 사용했다.
  • NEC(NEC) parametron 컴퓨터 NEAC 1103 (1960)은 D, G, H, J, K, V를 사용했다.
  • Pacific Data Systems(퍼시픽 데이터 시스템즈) 1020 (1964)은 L, C, A, S, M, D를 사용했다.


Bibi-binary


Ronald O. Whitaker의 16진법 표기 제안

  • 1968년 Boby Lapointe는 Bibi-binary 표기법을 도입했다.
  • Brookhaven National Laboratory(브룩헤븐 국립 연구소)의 Bruce Alan Martin은 A–F가 우스꽝스럽다고 생각하여 새로운 기호 집합을 제안했다.[14]
  • 1972년, Rowco Engineering Co.의 Ronald O. Whitaker는 삼각 폰트를 제안했다.[15][16]
  • 일부 7세그먼트 디스플레이 디코더 칩은 예상치 못한 출력을 표시한다.[17]


프로그래밍 언어에서는 16진수 리터럴을 위한 특별한 표기가 있다. 대문자 A-F와 소문자 a-f는 구별하지 않는다.

(1000)16 표기의 예:

표기 예언어·처리계비고
0x1000정수 리터럴
\x1000문자 코드
#x1000정수 값
က문자 코드
1000h 또는 1000H정수, 변수명과 구별하기 위해 0을 붙일 때가 있음 (예: 0A000H)
&h1000정수 리터럴
$1000정수 리터럴, 모토로라계 어셈블리 언어 자료



16진수 읽는 법은 십진수 1000(천)과 구별하기 위해 문자열 그대로 읽는다 (예: 0x1000은 "제로・엑스・일・제로・제로・제로"). 관용적으로 "헥사의 천" 또는 "천 헥사"라고 읽기도 한다.

위의 숫자에 붙는 h나 x는 hexadecimal|헥사데시멀영어에서 따온 것이다.

2. 2. 10진수와의 구분

16진수는 10진수와 혼동될 수 있으므로, 명확하게 구분하기 위한 표기법이 사용된다.[2] 수학에서는 16진수 뒤에 아래첨자 (16)을 붙여 구분한다. 예를 들어, 15916은 16진수 159이며, 십진수로는 34510과 같다.

컴퓨터 프로그래밍 언어에서는 16진수 앞이나 뒤에 특정 문자를 붙여 구분한다.

표기 예언어·처리계비고
0x1000정수 리터럴을 기술하는 경우.
\x1000문자 리터럴이나 문자열 리터럴 안에서 문자 코드를 기술하는 경우.
#x1000정수 값의 외부 표현.
က문자 실체 참조로 문자 코드를 기술하는 경우.
1000h 또는 1000H정수 immediate를 기술하는 경우. 16진수 표기가 영문자(A~F)로 시작할 때는 변수명 등과 구별하기 위해 맨 앞에 0을 붙여야 할 때가 있다. (예: 0A000H)
&h1000정수 리터럴을 기술하는 경우.
$1000정수 리터럴을 기술하는 경우. 주로 모토로라계의 어셈블리 언어・마이크로컴퓨터 자료에 사용된다.



16진수 표기는 프로그래밍 언어에서 리터럴로 특별한 표기가 준비되어 있는 경우가 많으며, 대문자 A~F와 소문자 a~f를 구별하지 않는다. 16진수를 읽을 때는 10진수와 구별하기 위해 문자열 그대로 읽는다. 예를 들어, `0x1000`은 "제로・엑스・일・제로・제로・제로"로 읽는다. 관용적으로 "헥사의 천" 또는 "천 헥사"라는 읽기도 사용된다.

위의 숫자에 붙는 `h`나 `x`는 영어로 십육진법을 의미하는 hexadecimal|헥사데시멀영어에서 따온 것이다.

2. 3. 소수 표기

십육진 소수를 여러 소인수를 가지는 위치 기수법으로 변환할 때는 십육진수에 그 역수를 곱한다.

  • 십육진법 0.01 (2-8)
  • * 육진법 0.00050213 → 50213(6) = 19A1(16)를 곱한다.
  • * 십진법 0.00390625 → 390625(10) = 5F5E1(16)를 곱한다.
  • * 십팔진법 0.014E1249 → 14E1249(18) = 290D741(16)를 곱한다.
  • * 십이진법 0.0069 → 69(12) = 51(16)를 곱한다.
  • * 이십진법 0.01B5 → 1B5(20) = 271(16)를 곱한다.


이진 표기를 소수점을 기준으로 '''왼쪽에서'''부터 순서대로 4자리씩 나누고, 각 부분을 16진 표기로 변환하여 소수 부분의 변환을 한다.

나누어 떨어지지 않는 소수의 순환 부분은 밑줄로 표시한다. 16진법인수에 홀수가 포함되어 있지 않기 때문에, 1/3이나 1/5와 같은 ""는 모두 나누어 떨어지지 않는다. 소수를 분수화해도 ""가 되는 소수는 전혀 나타나지 않는다. 따라서, 짝수도 1/6 {1 ÷ (2 × 3)} 또는 1/A {1 ÷ (2 × 5)}와 같은 ""는 나누어 떨어지지 않는다. 의 배수도 의 배수도 역수로 하면 모두 나누어 떨어지지 않으므로, 단위 분수는 무한 소수로 가득 차 있으며, 역수가 유한 소수가 되는 예는 2의 거듭제곱뿐이다.

16진법 소수분수
16진법 소수6진법 기약 분수10진법 기약 분수6진법 소수10진법 소수12진법 소수20진법 소수
0.11/241/160.02130.06250.090.15
0.21/121/80.0430.1250.160.2A
0.33/243/160.10430.18750.230.3F
0.41/41/40.130.250.30.5
0.55/245/160.15130.31250.390.65
0.63/123/80.2130.3750.460.7A
0.711/247/160.23430.43750.530.8F
0.81/21/20.30.50.60.A
0.913/249/160.32130.56250.690.B5
0.A5/125/80.3430.6250.760.CA
0.B15/2411/160.40430.68750.830.DF
0.C3/43/40.430.750.90.F
0.D21/2413/160.45130.81250.990.G5
0.E11/127/80.5130.8750.A60.HA
0.F23/2415/160.53430.93750.B30.IF



소수로의 변환과 나눗셈 (3의 거듭제곱)
N진법N의
소인수 분해
1/31/9
(1 ÷ 32)
(1/27)
(1 ÷ 33)
100 ÷ 3100 ÷ 9100 ÷ 33
16진법240.5555…0.1C70.097B425ED
(1 ÷ 1B)
55.5555…1C.71C9.7B425ED09
(100 ÷ 1B)
6진법2 × 30.20.04
(1 ÷ 13)
0.012
(1 ÷ 43)
221.2
(1104 ÷ 3)
44.24
(1104 ÷ 13)
13.252
(1104 ÷ 43)
12진법22 × 30.40.140.054
(1 ÷ 23)
71.4
(194 ÷ 3)
24.54
(194 ÷ 9)
9.594
(194 ÷ 23)



소수로의 변환과 나눗셈 (5의 거듭제곱)
N진법N의 소인수 분해1/5(1/25)
(1 ÷ 52)
100 ÷ 5100 ÷ 52
16진법240.3333…0.0A3D7
(1 ÷ 19)
33.3333…A.3D70A
(100 ÷ 19)
10진법2 × 50.20.04
(1 ÷ 25)
51.2
(256 ÷ 5)
10.24
(256 ÷ 25)
20진법22 × 50.40.0G
(1 ÷ 15)
2B.4
(CG ÷ 5)
A.4G
(CG ÷ 15)



기타 계산 예:


  • 피제수가 '''B''' (10진법의 11)
  • * 16진법: B ÷ 3 = 3.AAAA…
  • * 16진법: B ÷ 5 = 2.3333…
  • * 6진법: (15)6 ÷ 3 = 3.4
  • * 12진법: B ÷ 3 = 3.8
  • * 10진법: (11)10 ÷ 5 = 2.2
  • * 20진법: B ÷ 5 = 2.4

  • 피제수가 '''8E''' (10진법의 142)
  • * 16진법: (8E)16 ÷ 3 = 2F.5555…
  • * 16진법: (8E)16 ÷ 5 = 1C.6666…
  • * 6진법: (354)6 ÷ 3 = 115.2
  • * 12진법: (BA)12 ÷ 3 = 3B.4
  • * 10진법: (142)10 ÷ 5 = 28.4
  • * 20진법: (72)20 ÷ 5 = 18.8

3. 가분성

16(十六|shíliù중국어)은 약수에 홀수가 포함되어 있지 않아, 십육진법으로는 3이나 5 등으로 나눌 수 없다. 단위 분수는 2의 거듭제곱과 1을 제외하고 모두 무한 소수가 된다.[18] 따라서 소수 전개는 "3의 배수" 진법 (육진법 등)이나 "5의 배수" 진법 (십진법 등)보다 훨씬 불편하다.

16진법 소수의 분수화
16진법 소수6진법 기약 분수10진법 기약 분수6진법 소수10진법 소수12진법 소수20진법 소수
0.11/241/160.02130.06250.090.15
0.21/121/80.0430.1250.160.2A
0.33/243/160.10430.18750.230.3F
0.41/41/40.130.250.30.5
0.55/245/160.15130.31250.390.65
0.63/123/80.2130.3750.460.7A
0.711/247/160.23430.43750.530.8F
0.81/21/20.30.50.60.A
0.913/249/160.32130.56250.690.B5
0.A5/125/80.3430.6250.760.CA
0.B15/2411/160.40430.68750.830.DF
0.C3/43/40.430.750.90.F
0.D21/2413/160.45130.81250.990.G5
0.E11/127/80.5130.8750.A60.HA
0.F23/2415/160.53430.93750.B30.IF



나누어 떨어지지 않는 소수의 순환 부분은 밑줄로 표시한다. 10이 되는 십육진법은 인수에 홀수가 포함되어 있지 않기 때문에, 1/3이나 1/5와 같은 "1 ÷ 홀수"는 모두 나누어 떨어지지 않는다. 소수를 분수화해도 "m/홀수"가 되는 소수는 전혀 나타나지 않는다. 따라서, 짝수도 1/6 {1 ÷ (2 × 3)} 또는 1/A {1 ÷ (2 × 5)}와 같은 "1 ÷ 홀수에서 나누어 떨어지는 짝수"는 나누어 떨어지지 않는다. 6의 배수도 10의 배수도 역수로 하면 모두 나누어 떨어지지 않으므로, 단위 분수는 무한 소수로 가득 차 있으며, 역수가 유한 소수가 되는 예는 2의 거듭제곱뿐이다.[18]

소수로의 변환과 나눗셈 (3의 거듭제곱)
N진법N의 소인수 분해1/31/9
(1 ÷ 32)
(1/27)
(1 ÷ 33)
100 ÷ 3100 ÷ 9100 ÷ 33
16진법240.5555…0.1C70.097B425ED
(1 ÷ 1B)
55.5555…1C.71C9.7B425ED09
(100 ÷ 1B)
6진법2 × 30.20.04
(1 ÷ 13)
0.012
(1 ÷ 43)
221.2
(1104 ÷ 3)
44.24
(1104 ÷ 13)
13.252
(1104 ÷ 43)
12진법22 × 30.40.140.054
(1 ÷ 23)
71.4
(194 ÷ 3)
24.54
(194 ÷ 9)
9.594
(194 ÷ 23)



소수로의 변환과 나눗셈 (5의 거듭제곱)
N진법N의 소인수 분해1/5(1/25) (1 ÷ 52)100 ÷ 5100 ÷ 52
16진법240.3333…0.0A3D7
(1 ÷ 19)
33.3333…A.3D70A
(100 ÷ 19)
10진법2 × 50.20.04
(1 ÷ 25)
51.2
(256 ÷ 5)
10.24
(256 ÷ 25)
20진법22 × 50.40.0G
(1 ÷ 15)
2B.4
(CG ÷ 5)
A.4G
(CG ÷ 15)


4. 컴퓨터에서의 16진수

컴퓨터에서 데이터는 주로 비트나 옥텟(바이트) 단위로 표현된다. 16진수는 이러한 이진 데이터를 간결하게 나타내는 데 매우 유용하다. 16진수 한 자리는 이진수 4자리(4비트)를 표현할 수 있어, 이진수보다 훨씬 짧게 데이터를 나타낼 수 있다.[40]

16진수는 메모리 주소, 기계어, 데이터 표현 등 다양한 분야에서 사용된다. 예를 들어, 다음은 16진수로 표현된 16진수 덤프의 예시이다. 각 8비트 바이트는 2자리 16진수로, 시작 부분의 32비트 오프셋은 8자리 16진수로 표현되어 있다. 가독성을 위해 공백이 사용되었다.



00000000 57 69 6b 69 70 65 64 69 61 2c 20 74 68 65 20 66

00000010 72 65 65 20 65 6e 63 79 63 6c 6f 70 65 64 69 61

00000020 20 74 68 61 74 20 61 6e 79 6f 6e 65 20 63 61 6e

00000030 20 65 64 69 74 0a



16진수 표현에는 대문자(A–F)와 소문자(a–f)가 모두 사용될 수 있으며, 특정 환경에 따라 선호되는 표기법이 다르다. 세븐 세그먼트 디스플레이에서는 A–F를 0–9와 명확히 구분하기 위해 혼합된 대소문자를 사용하기도 한다.

16진수는 2의 보수 방식을 사용하여 음수를 표현할 수도 있다. 예를 들어, 32비트 CPU 레지스터에서 -4210는 FFFF FFD6으로 표현될 수 있다. 또한, 16진수는 부동소수점 값을 나타내는 데에도 사용될 수 있다.

십육진수와 십진수 간의 대응
십진법0123456789101112131415
십육진법0123456789ABCDEF


4. 1. 진법 변환

1982년에 프로그래머를 위해 설계된 프로그래밍 가능한 RPN 계산기 HP-16C 컴퓨터 과학자. 주요 기능 중 하나는 서로 다른 숫자 체계 간의 변환이었다(디스플레이의 16진수 참조).


16진수는 16을 밑으로 하는 기수법이다. 16진법에서는 0부터 9까지의 숫자와 A부터 F까지의 문자를 사용하여 수를 표현한다. 여기서 A는 10, B는 11, ..., F는 15를 나타낸다.

십육진수 기법 대응
십진법0123456789101112131415
십육진법0123456789ABCDEF



16진수 (amam-1...a1a0.b1b2...bk)는 다음과 같은 값을 나타낸다.[39]

:

\left(

\sum_{i=0}^{m} a_i \cdot 16^{i}

\right) + \left(

\sum_{j=1}^{n} b_j \cdot 16^{-j}

\right) \,.



여기서 ai는 정수부의 자리 값, bi는 소수부의 자리 값을 나타내며, 0에서 15(F) 사이의 정수이다. 정수부와 소수부의 경계는 소수점으로 표시한다.

사진법(4진법)은 거의 사용되지 않지만, 16진법이나 2진법으로 쉽게 변환할 수 있다. 각 16진수 자릿수는 두 개의 4진수 자릿수에 해당하며, 각 4진수 자릿수는 두 개의 2진수 자릿수에 해당한다.

팔진법(8진법) 시스템도 비교적 쉽게 변환할 수 있지만, 2진법 및 4진법만큼은 아니다. 각 8진수 자릿수는 세 개의 2진수 자릿수에 해당한다. 따라서 8진법과 16진법 간 변환을 할 때는 2진법으로의 중간 변환을 거쳐 세 개 또는 네 개의 2진수 자릿수를 그룹화하여 변환할 수 있다.

4. 1. 1. 2진수와의 변환

16진수와 2진수는 각 자릿수 간의 관계 때문에 쉽게 변환할 수 있다. 16진수 한 자리는 2진수 4자리(4비트)에 해당한다.[25]

대부분의 컴퓨터는 이진 데이터를 다루지만, 사람은 작은 이진수라도 많은 자릿수를 사용하기 때문에 어려움을 느낀다. 10진법에 익숙한 사람이라도, 2진수를 10진수로 변환하는 것보다 16진수로 변환하는 것이 더 쉽다. 16진수 한 자리가 2진수 4자리에 정확히 대응되기 때문이다.

예를 들어, 2진수 11112을 10진수로 변환하면 다음과 같다.

11112= 810 + 410 + 210 + 110
 = 1510



하지만, 약간의 연습을 통해 11112를 16진수 F16으로 바로 변환할 수 있다. 숫자가 커질수록 10진수보다 16진수를 사용하는 것이 훨씬 편리하다. 16진수로 변환할 때는 2진수 문자열을 4자리씩 묶어서 각 그룹을 하나의 16진수 숫자로 바꾸면 된다.[25]

다음은 2진수를 10진수와 16진수로 변환하는 예시이다.

(1001011100)2= 51210 + 6410 + 1610 + 810 + 410
 = 60410



(1001011100)2=0010 0101 11002
 =25C16
 =25C16



16진수에서 2진수로의 변환도 마찬가지로 간단하다.[25]

다음 표는 0부터 15까지의 숫자를 2진법, 8진법, 10진법, 12진법, 16진법으로 나타낸 것이다.

16진법 표기12진법 표기10진법 표기8진법 표기2진법 표기
(0)16(0)12(0)10(0)8(0)2
(1)16(1)12(1)10(1)8(1)2
(2)16(2)12(2)10(2)8(10)2
(3)16(3)12(3)10(3)8(11)2
(4)16(4)12(4)10(4)8(100)2
(5)16(5)12(5)10(5)8(101)2
(6)16(6)12(6)10(6)8(110)2
(7)16(7)12(7)10(7)8(111)2
(8)16(8)12(8)10(10)8(1000)2
(9)16(9)12(9)10(11)8(1001)2
(A)16(A)12(10)10(12)8(1010)2
(B)16(B)12(11)10(13)8(1011)2
(C)16(10)12(12)10(14)8(1100)2
(D)16(11)12(13)10(15)8(1101)2
(E)16(12)12(14)10(16)8(1110)2
(F)16(13)12(15)10(17)8(1111)2



2진수를 16진수로 변환하는 방법은 다음과 같다.

1. 2진수를 오른쪽부터 4자리씩 묶는다. 마지막 그룹이 4자리가 안 되면 왼쪽에 0을 추가한다.


  • 예: (111010)2 → (11, 1010)2 → (0011, 1010)2

2. 각 4자리 그룹을 16진수로 변환한다.

  • 예: (0011)2 = (3)16, (1010)2 = (A)16

3. 변환된 16진수를 순서대로 나열한다.

  • 예: (3A)16


이 방법은 자릿수에 관계없이 사용할 수 있다. 예를 들어, (100110010111010)2는 (0100, 1100, 1011, 1010)2으로 묶고, (4CBA)16으로 변환할 수 있다.

4. 1. 2. 10진수와의 변환



16) 2304…'''0'''

16) 144…'''0'''

                                                 9…'''9'''

따라서 3686410 = 900016 이다.

16진수를 10진수로 변환하려면, 각 자리에 16의 거듭제곱을 곱하여 더한다. 예를 들어 16진수 F32를 10진수로 변환하면 다음과 같다.

: F32 = F × 162 + 3 × 16 + 2 = 15 × 16 × 16 + 3 × 16 + 2 = 3840 + 48 + 2 = 3890

다른 예시로, B3AD를 10진수로 변환하는 과정은 다음과 같다.

: B3AD = (11 × 163) + (3 × 162) + (10 × 161) + (13 × 160) = 45997

다음은 0부터 15까지의 10진수, 16진수, 8진수, 2진수 변환표이다.

10진수, 16진수, 8진수, 2진수 변환표
10진수16진수8진수2진수
0000000
1110001
2220010
3330011
4440100
5550101
6660110
7770111
88101000
99111001
10A121010
11B131011
12C141100
13D151101
14E161110
15F171111



마이크로소프트 윈도우의 계산기 유틸리티를 프로그래머 모드로 설정하면 16진수, 10진수, 8진수, 2진수 간 변환이 가능하다.

5. 16진수의 응용

웹 색상은 HTML, CSS, X 윈도 시스템 등에서 `#`가 앞에 붙은 6개의 16진수(각각 빨강, 녹색, 파랑 구성 요소에 대해 두 개, 순서대로)로 표현할 수 있다. 예를 들어 자홍색은 `#FF00FF`로 표시된다.[11] CSS는 구성 요소당 1개의 16진수 숫자를 사용하여 3자리 16진수 약어를 허용하는데, `#FA3`은 `#FFAA33` (황금빛 주황색: )의 약자이다.

유니코드 표준에서 문자 값은 `U+` 다음에 16진수 값을 사용하여 표시된다. 예를 들어 `U+00A1`은 느낌표 뒤집기(¡)이다.

MIME(이메일 확장) quoted-printable 인코딩에서 문자 코드는 `=`가 앞에 붙은 16진수 쌍으로 작성된다. `=Espa=F1a`는 "España"이다(F1은 ISO/IEC 8859-1 문자 집합에서 ''ñ''의 코드이다).[12]

모든 IPv6 주소는 8개의 네 자리 16진수 그룹(때로는 hextet이라고 함)으로 작성할 수 있으며, 각 그룹은 콜론(`:`)으로 구분된다. 예를 들어, `2001:0db8:85a3:0000:0000:8a2e:0370:7334` 또는 선행 0을 제거하여 `2001:db8:85a3::8a2e:370:7334`로 줄여서 표시하는 것은 유효한 IPv6 주소이다 (IPv4 주소는 일반적으로 10진수로 작성된다).

GUID는 32개의 16진수로 작성되며, 종종 하이픈으로 구분된 불균등한 그룹으로 표현된다. 예를 들어 `3F2504E0-4F89-41D3-9A0C-0305E82C3301`이다.

6. 역사

16진법은 컴퓨터 개발 초기부터 사용되었으며, 여러 가지 표기법이 제안되었다. 초기에는 10부터 15까지의 숫자를 표현하기 위해 다양한 기호들이 사용되었다. 예를 들어, 스탠다드 웨스턴 오토매틱 컴퓨터(SWAC) (1950)와 Bendix G-15 (1956)에서는 'u', 'v', 'w', 'x', 'y', 'z'를 사용했고, ILLIAC I (1952)에서는 'K', 'S', 'N', 'J', 'F', 'L'을 사용했다.

시기기종101112131415
1950년대Bendix-14 등 여러 기종012345
1950스탠다드 웨스턴 오토매틱 컴퓨터(SWAC)uvwxyz
1956Bendix G-15uvwxyz
1952ILLIAC IKSNJFL
1956Librascope LGP-30FGJKQW
1957허니웰bcdefg
1967엘비트 100BCDEFG
1960STUVWX
1960NEC NEAC 1103[41]DGHJKV
1964Pacific Data Systems 1020LCASMD
1980(소련의 프로그램 가능한 계산기)LCГE" " [42]



현재 사용되는 A~F 표기법은 IBM System/360용 Fortran IV 매뉴얼이 출판된 1966년 이후 사실상 표준으로 자리 잡았다.[38] 1968년, 브룩헤이븐 국립 연구소의 브루스 앨런 마틴(Bruce Alan Martin)은 A~F 표기법에 불만을 품고 비트 배열에 기반한 완전히 새로운 숫자를 고안하여 1968년에 제안했지만, 큰 지지를 얻지는 못했다.[43]

'Hexadecimal'이라는 단어는 그리스어에서 6(ἕξel, hex)을 뜻하는 'hexa-'와 라틴어에서 10번째를 뜻하는 '-decimal'의 합성어이다. 도널드 커누스는 라틴어로 16진수를 표현한다면 'senidenary' 또는 'sedenary'가 올바른 표현일 것이라고 지적했다.[44]

7. 기타

Base16(공백 없이 고유 명사로 사용)은 Base32, Base58, Base64와 같은 계열에 속하는 이진-텍스트 인코딩을 지칭하기도 한다.[14]

이 경우 데이터는 4비트 시퀀스로 분할되며, 각 값(0에서 15까지 포함)은 ASCII 문자 집합에서 16개의 기호 중 하나를 사용하여 인코딩된다. ASCII 문자 집합의 16개 기호 중 어느 것이든 사용할 수 있지만, 실제로 16진수 표기법과 일치시키기 위해 ASCII 숫자 "0"–"9"와 문자 "A"–"F"(또는 소문자 "a"–"f")가 항상 선택된다.

Base16 인코딩에는 다음과 같은 몇 가지 장점이 있다.


  • 대부분의 프로그래밍 언어에는 이미 ASCII로 인코딩된 16진수를 구문 분석하는 기능이 있다.
  • 정확히 반 바이트인 4비트는 Base32 및 Base64의 5비트 또는 6비트보다 처리하기 쉽다.
  • 기호 0–9 및 A–F는 16진수 표기법에서 보편적이므로 기호 조회 테이블에 의존하지 않고도 한눈에 쉽게 이해할 수 있다.
  • 많은 CPU 아키텍처에는 반 바이트("니블"이라고도 함)에 액세스할 수 있는 전용 명령이 있어 Base32 및 Base64보다 하드웨어에서 더 효율적이다.


Base16 인코딩의 주요 단점은 다음과 같다.

  • 공간 효율성은 50%에 불과하다. 원래 데이터의 각 4비트 값이 8비트 바이트로 인코딩되기 때문이다. 반면에 Base32 및 Base64 인코딩은 각각 63% 및 75%의 공간 효율성을 갖는다.
  • 대문자와 소문자를 모두 허용해야 하는 복잡성이 추가될 수 있다.


Base16 인코딩에 대한 지원은 현대 컴퓨팅에서 유비쿼터스하다. 이는 문자를 퍼센트 기호 "%"와 해당 Base16 인코딩 형태로 대체하는 W3C 표준인 URL 퍼센트 인코딩의 기초이다. 대부분의 현대 프로그래밍 언어는 Base16으로 인코딩된 숫자를 포맷하고 구문 분석하는 기능을 직접 포함하고 있다.

전통적인 중국 측정 단위는 16진법이었다. 예를 들어, 옛 체제에서 1 은 16 에 해당한다. 주판(중국식 주판)은 덧셈과 뺄셈과 같은 16진법 계산을 수행하는 데 사용할 수 있다.[26]

척관법과 야드파운드법의 질량 단위 일부에도 십육진법이 사용된다.

척관법야드파운드법
1 = 16 1 파운드 = 16 온스
1 온스 = 16 드럼


참조

[1] 뉴스 The hexadecimal system https://www.ionos.co[...] 2022-08-26
[2] 서적 The TeXbook https://www.worldcat[...] 1986
[3] 문서
[4] 웹사이트 The Unicode Standard, Version 7 https://www.unicode.[...] 2018-10-28
[5] 웹사이트 Modula-2 – Vocabulary and representation http://modula2.org/r[...] 2015-11-01
[6] 웹사이트 An Introduction to VHDL Data Types https://www.fpgatuto[...] 2020-05-10
[7] 웹사이트 '*read-base* variable in Common Lisp' http://www.lispworks[...] 2015-01-10
[8] 웹사이트 '*print-base* variable in Common Lisp' http://www.lispworks[...] 2015-01-10
[9] Webarchive MSX is Coming — Part 2: Inside MSX http://www.atarimaga[...] Compute! 2010-11-24
[10] 문서
[11] 웹사이트 Hexadecimal web colors explained https://web.archive.[...] 2006-01-11
[12] 웹사이트 ISO-8859-1 (ISO Latin 1) Character Encoding https://www.ic.unica[...] 2019-06-26
[13] 서적 NEC Parametron Digital Computer Type NEAC-1103 http://archive.compu[...] Nippon Electric Company Ltd. 1960
[14] 논문 Letters to the editor: On binary notation Associated Universities Inc. 1968-10
[15] 뉴스 More on man/machine http://www.bitsavers[...] Technical Publishing Company 1972-01
[16] 웹사이트 Combined display and range selector for use with digital instruments employing the binary numbering system https://patentimages[...] 1976-08-10
[17] 웹사이트 SN5446A, '47A, '48, SN54LS47, 'LS48, 'LS49, SN7446A, '47A, '48, SN74LS47, 'LS48, 'LS49 BCD-to-Seven-Segment Decoders/Drivers https://www.ti.com/l[...] Texas Instruments Incorporated 1988-03
[18] 간행물 A hexadecimal pronunciation guide 1968-01
[19] 웹사이트 Hexadecimal number words http://www.intuitor.[...] 2019-08-26
[20] 웹사이트 How to pronounce hexadecimal https://www.bzarg.co[...] 2021-01-01
[21] 서적 The Last Theorem https://archive.org/[...] Ballantine 2008
[22] 웹사이트 ISO/IEC 9899:1999 – Programming languages – C http://www.iso.org/i[...] Iso.org 2011-12-08
[23] 웹사이트 Rationale for International Standard – Programming Languages – C http://www.open-std.[...] 2003-04
[24] 웹사이트 dprintf, fprintf, printf, snprintf, sprintf – print formatted output http://pubs.opengrou[...] 2013
[25] 서적 Digital Design – With an Introduction to the Verilog HDL Pearson Education 2013
[26] 웹사이트 算盤 Hexadecimal Addition & Subtraction on a Chinese Abacus http://totton.idirec[...] 2019-06-26
[27] 웹사이트 Base 4^2 Hexadecimal Symbol Proposal http://www.hauptmech[...] 2008-09-04
[28] 웹사이트 Intuitor Hex Headquarters http://www.intuitor.[...] 2018-10-28
[29] 웹사이트 A proposal for addition of the six Hexadecimal digits (A-F) to Unicode https://www.unicode.[...] ISO/IEC JTC1/SC2/WG2 2003-10-21
[30] 서적 Project of a New System of Arithmetic, Weight, Measure and Coins: Proposed to be called the Tonal System, with Sixteen to the Base https://archive.org/[...] Lippincott
[31] Webarchive 2021-05-19
[32] 문서
[33] 문서
[34] 서적 The Words of Mathematics: An etymological dictionary of mathematical terms used in English The Mathematical Association of America 1994
[35] 서적
[36] 간행물 Report on Weights and Measures https://archive.org/[...] Pharmaceutical Association 1859-09-15
[37] 간행물 Octonary numeration and its application to a system of weights and measures https://books.google[...] Proc Amer. Phil. Soc. 1887
[38] 문서 IBM System/360 FORTRAN IV Language http://www.bitsavers[...] 1966
[39] 서적 岩波数学入門辞典 岩波書店 2005
[40] 문서 (00)16〜(ff)16
[41] 서적 NEC Parametron Digital Computer Type NEAC-1103 http://archive.compu[...] Nippon Electric Company Ltd. 2017-05-31
[42] 문서 スペース記号
[43] 논문 編集者への手紙: バイナリ表記について Associated Universities Inc. 1968-10
[44] 서적 The Art of Computer Programming, Volume 2 1969
[45] 간행물 Report on Weights and Measures https://archive.org/[...] Pharmaceutical Association 1859-09-15
[46] 간행물 Octonary numeration and its application to a system of weights and measures https://books.google[...] Proc Amer. Phil. Soc. 1887
[47] 서적 The Words of Mathematics: an etymological dictionary of mathematical terms used in English 1994



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com