빛의 삼원색은 R(빨강), G(초록), B(파랑)이다.

그림에서도 알 수 있다시피 빛은 합성할 수록 밝아지고, 적절히 합성해 모든 색을 만들 수 있다.

따라서 R,G,B 의 값(세기)를 알고 있으면 어떤 색을 표현할 수 있을 것이다.

컴퓨터는 이진법을 기본으로하며, 많은 곳에 이진법이 사용된다.. R,G,B 값 역시 0~255로 표현되는데, 이는 8자리 2진수, 2자리 16진수로 표현 할 수 있는 값의 범위이다.


진법과 진수

진수와 진법을 이야기하고 있는데, 이에 대해 잘 모르는 독자가 있을 것이다. 그러니 우선 진수와 진법에 대해 알아보려한다.

진법은 수를 세는 방법, 진수는 어떤 진법으로 센 수를 의미한다.

예를 들어 2진법은 2가지 수(0,1)를 이용해 수를 세는 방법을, 4진수는 4진법으로 센 수를 말한다.

2진법, 4진법, 8진법, 10진법은 0,1,2,3,4,5,6,7,8,9를 이용해 할 수 있겠지만 16진법부터는 문제가 발생한다.

10진수 10을 16진법으로 어떻게 표현할 것인가?

이에 대하여 다음과 같이 약속하였다.

\[10=a\\ 11=b\\ 12=c\\ 13=d\\ 14=e\\ 15=f\]

진법의 변환

진법의 변환은 어떻게 할 수 있을지에 대해 알아보기 전, ‘자리’에 대해 살펴보자.

10진수에서 우리는 일반적으로 다음과 같이 말한다.

\[123456789라는 수가 있을 때, \\ 1의 자리는 9 \\ 10의 자리는 8 \\ 100의 자리는 7 \\ … \\ 100000000의 자리는 1\]

이는 다음과 같이 표현 할 수 도 있을 것이다.

\[10^0의 자리는 9 \\ 10^1의 자리는 8 \\ 10^2의 자리는 7 \\ ... \\ 10^8의 자리는 1\]

이진수 100110001에도 적용해보자.

\[2^0의 자리는 1 \\ 2^1의 자리는0 \\ 2^2의 자리는 0 \\ ... \\ 2^8의 자리는 1\]


진법의 변환

10진수가 아닌 수에서 10진수로의 변환은 다음과 같이 할 수 있다.
\(k진법, \\ n_x는 x번째 자리수 \\ (1부터 시작)\) \(n_x\times k^{x-1}+n_{x-1}\times k^{x-2}+\cdots +n_{2}\times k^{1} +n_{1}\times k^{0}\)

10진수에서 다른 진수로의 변환은, 10진수를 바꾸고자 하는 진법(8진법이면 8)으로 몫이 0이 될때까지 반복해서 나누어 주고, 각각의 나머지를 낮은 자리부터 적어주면 된다.[1]


표현 가능 범위

\[k진법의 n자리 수는 \\ k^n -1까지 표현할 수 있다.\]

RGB로 돌아가 보자.

색은 다음과 같이 표현한다.

  1. 10진 코드
(R,G,B)
  1. 헥스코드[2]
#RRGGBB

번외

CSS[3]에서는 다음과 같이도 표현한다.

(XX)

위는

#XXXXXX

와 같다.


예시

위 사진은 아래 사이트를 통해 생성되었다.

https://encycolorpedia.kr/


1 2의 제곱수 진법끼리는 더 간단한 방법이 있다. 이는 독자들이 생각해 보길 바란다.

2 : hexadeca, 16을 뜻한다.

3 Cascading Style Sheets, 주로 HTML과 함께 디자인 등을 위해 사용된다.

hyunho.choi's profile image

최현호(hyunho.choi)

2021-08-15 22:15

Read more posts by this author