컴퓨터가 이해할 수 있는 수는 0과 1이다. 즉, 컴퓨터가 표현하는 수의 단위는 bit이다. 1bit는 0과 1을 표현할 수 있으며, 이를 디지털 표기라고 이해할 수 있다.
- 1bit = 0,1 총 2가지 표현 가능
- 2bit = 0,1,2,3 총 4가지 표현 가능
- 4bit = 0,1,2,3, ... , 14,15 총 16가지 표현 가능
따라서 Nbit는 총 2^N가지의 수를 표현할 수 있으며 최소 값은 0, 최대 값은 2^N - 1이다.
2진수, 16진수 변환
실제 컴퓨터에 표기되는 값들은 2진수가 아닌 16진수인 경우가 대부분이다. 앞서 4bit는 총 16개의 숫자를 표현할 수 있다고 하였다. 따라서 4bit를 하나의 숫자 혹은 문자로 표현할 수 있다. 그것이 바로 16진수이다.

이처럼 2진수 네 자리로 표현할 것을 16진수 한 자리로 표현이 가능하다. 따라서 복잡한 수 체계를 갖고 있는 컴퓨터 메모리 및 기타 정보들에 대한 표기는 16진수를 기반으로 되어있다. 반대로 말하면 16진수 한 자리는 2진수 네 자리로 표현된다는 뜻이며, 이는 4비트를 뜻하는 것이다. 4비트는 16진수 한 자리 숫자다.
보통 컴퓨터에 표기되는 16진수는 0x라는 Prefix가 붙는다. 예를 들어, 0xF4의 경우, F와 4가 16진수라는 것이며 16진수가 두 자리 쓰였기 때문에 4비트 + 4비트 = 8비트를 나타내는 것이다.
16진수 표기가 사용되는 예
1. 색상 표현
컴퓨터에서 표현하는 색상은 R, G, B (빛의 삼원색) 이 세 가지를 바탕으로 표현된다.

Red 밑에 있는 값을 잘 보면, 255-0-0이라고 쓰여있는걸 확인할 수 있다. 여기서 255란 0부터 255중에서 255 레벨이라는 뜻이다. 즉, 빨강을 표현하는 256개의 등급 중에서 가장 높은 등급을 갖는 것이 오리지날 빨강색인 것이다.
256개를 표현할 수 있다는 것은 2^8을 나타내므로 이는 8bit이다. 즉, 빨강, 파랑, 초록을 각각 256개의 등급으로 나누어서
표현하게 되며, 8bit + 8bit + 8bit 이므로, 16진수 6자리로 표현이 가능하다. ex) #B71C1C -> B7 1C 1C

윈도우즈의 프로그래머 계산기를 사용하면 HEX(16진수) 탭을 통해 16진수 값이 10진수로 얼마인지(DEC) 확인할 수 있다.
2. 컴퓨터 하드웨어 주소 및 메모리 값 표현
보통 하드웨어 주소나 메모리 값을 표현할 때도 16진수로 표현된다. 특히, 컴퓨터 전공 과목을 공부할 때도 대부분 16진수 수 체계로 표현됨을 알 수 있다. 자바에서도 객체의 메모리 주소를 출력할 때, 16진수로 출력된다.
컴퓨터에서 사용하는 단위 체계
파일의 용량을 표현할 때는 bit가 아닌 byte 단위로 표기한다. 1bit는 매우 작은 단위이기 때문에 실제 메모리 크기의 최소 단위는 byte(8bit)이다. 1byte는 영문자 한 글자가 저장될 수 있는 크기이며, 한글의 경우 한 글자당 2byte가 필요하다.
16비트의 경우, 2^16 = 65,536개의 숫자를 표현할 수 있으며 최소 값은 0, 최대 값은 65,535이다. 컴퓨터 용량 단위로 쓰이는 K의 경우, 1024 즉, 2^10을 뜻한다. 보통 계산 과정에서 간략하게 1000, 10^3으로 표현하는 경우도 있지만 실제 값은 1024이다. 65,536은 64 x 1024이기 때문에 64K로 나타낼 수 있다. 따라서 16비트는 64K개의 메모리 주소를 표현할 수 있다. 앞서 컴퓨터 메모리 주소는 bit가 아닌 byte 단위로 표현된다고 하였으므로, 16비트는 64KB 메모리를 표현하는 주소 단위가 될 수 있다. (16비트가 64KB라는 뜻이 아니라, 16비트가 총 64K개의 값을 표현할 수 있으므로 1byte 단위인 메모리 주소 값을 64K개까지 표현이 가능하다는 뜻이다! - 혼동 주의)
1KB는 1024 byte이며, 1MB는 1024 KB이다. 1GB는 1024 MB이다. 즉, 1024를 기준으로 단위가 나뉘어진다.

컴퓨터가 글자를 다루는 방법
컴퓨터는 숫자와 문자를 매핑시켜서 문자를 표현한다.(렌더링) 영문자 'A'는 아스키 코드 기준으로 10진수 65에 해당한다.
그리고 이는 16진수로 표현했을 때, 0x41이다. 문자도 결국 숫자처럼 표현이 되기 때문에 숫자 1과 문자 1은 다르다. 인간에게만 숫자 1과 문자 1이 다른 것이 아니다. 숫자 1은 0x01, 문자 1은 0x31이다.
우리가 프로그래밍 언어를 사용하여 문제를 풀 때, 문자를 다루는 경우가 종종 있다. 이 때, 문자라는 것이 결국에는 숫자로 표현되고, 해당 숫자를 다시 문자로 출력할 수도 있다. 즉, 컴퓨터에서 존재하는 문자는 특정 코드체계를 통해 표현되는 하나의 숫자로 이해해야 한다.
또한 컴퓨터는 공백문자 및 엔터를 하나의 값으로 인식한다. 빈칸은 20, 띄어쓰기는 0D 0A이다. (16진수) 따라서 우리가 특정 문자를 입력받을 때 사용하는 공백 및 엔터는 단순히 비어있는 것이 아니다. 이 또한 분명 컴퓨터에서 특정 값으로 처리되고 있기 때문에 우리가 개행문자를 통해 값을 구분해서 표현하고 저장할 수 있는 것이다.
컴퓨터가 사진을 다루는 방법
모니터에서 표현되는 하나의 점은 화소(Pixel)라고 칭한다. 이 점들이 모여서 사진이 되고, 사진이 모여서 하나의 영상이 된다. 이 때, 하나의 화소를 표현하는 데 있어서 필요한 정보는 작게는 8비트, 크게는 32비트까지 된다. 앞서 빛의 삼원색인 RGB를 바탕으로 색을 표현하는데 총 24비트가 필요하다고 하였다.(8비트 + 8비트 + 8비트) 여기에 추가로 Alpha Channel이라고 하는 투명도를 표현하는 정보(8비트)가 포함되어 총 32비트가 필요하다. (이를 RGBA라고 한다.)
각각의 점(화소)에 대한 비트 정보(32비트, 4바이트)를 표현하고, 이 점들이 수십만개가 모여 하나의 그림(KB에서 MB까지)이 완성된다. 따라서 사진에 대한 모든 점에 대한 비트 정보를 담고 있는 파일 포맷이 bitmap이다. 현재는 JPG, PNG 같은 다양한 포맷으로 용량을 줄여서 표현하는 방식(압축)을 사용하고 있다.
이미지에 대한 게시글 추천 :
비트맵과 벡터
이미지를 디지털화하는 두 가지 방식비트맵 VS 벡터 이미지를 디지털화하는 방법은 크게, 전체 그림을 미세한 화소(pixel)로 분해, 각 화소의 색상과 위치를 기록해 저장한 비트맵 방식과 그림을
iyagi.tistory.com
해당 게시글의 출처 :
넓고 얕게 외워서 컴공 전공자 되기 - 인프런 | 강의
넓고 얕게 외워서 컴퓨터 공학 전공자가 되고 싶은 모든 비전공 초보자를 위한 강의입니다. 컴퓨터 구조, 운영체제 등 컴퓨터 공학 전공 필수과목에서 어떤 것을 배울 수 있는지 빠른 시간에 알
www.inflearn.com
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=beophwagang&logNo=50104372751
16진수 체계와 주소체계(1)
16진수 체계 16진수는 2진수 값을 표현하는 데 편리한 방법이다. 10진법은 10진수 체계이고 2진법은...
blog.naver.com
https://www.shutterstock.com/ko/image-vector/additive-color-mixing-scheme-rgb-colors-1439873501
Additive Color Mixing Scheme Rgb Colors 스톡 벡터(로열티 프리) 1439873501 | Shutterstock
Shutterstock 컬렉션에서 HD 화질의 Additive Color Mixing Scheme Rgb Colors 스톡 이미지와 수백만 개의 사용료 없는 다른 스톡 사진, 일러스트, 벡터를 찾아보세요. 매일 수천 개의 고품질 사진이 새로 추가됩
www.shutterstock.com
아리송한 데이터의 단위 ‘바이트(Byte)’ | 삼성반도체
삼성반도체 공식 웹사이트 기술 블로그에서 바이트(Byte)에 대해 알아보세요.
semiconductor.samsung.com
'CS > 컴퓨터 구조 및 이론' 카테고리의 다른 글
3. 컴퓨터의 연산(모든 것은 덧셈에서 시작한다) (0) | 2023.07.28 |
---|---|
1. 컴퓨터를 공부하는 가장 좋은 방법, 다나와(코어와 쓰레드 차이) (0) | 2023.07.23 |