쌩로그

16비트 체계에 대하여 본문

CS/컴퓨터 구조

16비트 체계에 대하여

.쌩수. 2023. 9. 22. 00:09
반응형

목록

  1. 포스팅 개요
  2. 본론
        2-1. 비트는 경우의 수
        2-2. 16bit 체계 vs 16bit
        2-3 64bit
  3. 요약

1. 포스팅 개요

인프런의 지식 공유자 널널한 개발자님의 강의를 듣다가 헷갈리는 부분이 있어서 질문 글을 찾다가 질문 글에 대한 답변을 보고, 정리가 필요하다 싶어서 이렇게 포스팅 해봅니다.

결론은 제목처럼, 16비트 체계입니다.

2. 본론

2-1. 비트는 경우의 수

언젠가 제가 인프런의 무료로 열려있는 주니온 교수님의 운영체제를 듣다가 지금 들을 레벨은 아니라고 생각해서 지금 듣다말았습니다만,

거기서도 말씀하기를 bit를 경우의 수로 표현한 것을 기억합니다만,
여기서 널널한 개발자(이하 널개님)님께서도 답하기를 16비트 체계에 대하여 65536개의 경우의 수라고 표현 했습니다.

bit를 예로 들 때, 스위치를 많이 예를 들으시는데,
스위치가 꺼지면 0,
스위치가 켜지면 1을 나타냅니다.
(이로 보면 경우의 수가 맞는 것 같습니다.)

bit에 대한 블로그나 글을 보면 컴퓨터에서 사용하는 가장 작은 최소의 단위라고 합니다.

bit는 0,1을 표현하는 두 가지의 경우의 수가 있습니다.
1bit가 0과 1 이렇게 두가지를 표현할 수 있다면,
2bit는 00, 01, 10, 11 이렇게 4가지를 표현할 수 있습니다.
nbit는 2에 n승입니다.(뭐.. 제가 이래 말 안해도 다들 아실겁니다..)

그리고, 컴퓨터의 기본 단위는 1byte인데, 1byte는 8bit입니다.

2-2. 16bit 체계 vs 16bit

그럼 16bit를 봅시다.
16bit는 byte로 환산하면, 8bit가 2번 모이고, 8bit는 1byte이니,
총 2byte입니다.

그리고 16bit로 표현할 수 있는 경우의 수는 2^16이므로, 65536입니다.
이처럼 16bit 자체는 2byte가 맞습니다.

그럼 16비트 체계는 무엇일까요?
사실 이 부분이 제가 헷갈렸습니다.

질문자의 질문은 이러했습니다.

...(생략)

16비트는 65,536가지(64KB)이다. 라고 써있는데
65,536에서 왜 갑자기 KB 단위가 나오나요?

1 KB = 1000Byte 인 점에서 64KB가 나온 것 같은데,
지금은 경우의 수를 다루고 있는데 갑자기 여기서 byte가 왜 나오는지 이해가 안됩니다.
저 말대로라면 16bit = 2byte 이니까
16비트(2byte)는 65,536가지(64KB)이다. 즉, 2byte = 64KB 이다. 라고 해석이 됩니다...
...(생략)

네 저도 헷갈리네요.. 16byte에서 왜 64KB가 나올까했습니다.

널개님의 답은 다음과 같습니다.

16비트 자체는 2바이트가 맞습니다.

하지만 16비트 체계는 65536개의 경우의 수(2의 16제곱)가 있지요.
이를 다르게 표현하면 "1바이트를 관리하기 위한 메모리 주소가 총 65536개 있음."이라는 의미가 됩니다.
즉, 65536바이트 메모리를 16비트 체계로 관리 할 수 있다는 것이죠. 물론 데이터 용량의 단위로 바꾸면 65536바이트는 64KB가 됩니다.

그리고 1KB는 1024바이트 입니다. 2진법에서 단위는 2의 10제곱 단위(1024)로 올라갑니다. 즉, 1GB는 1024MB입니다.

참고하시기 바랍니다.

여기서 보시면, 16비트 자체는 2byte ... 하지만 16비트 체계...
라고 하십니다.
그러니깐...
현재 소제목처럼, 16비트와 16비트 체계는 전혀 다른 의미라는 것을 이해해볼 수 있습니다.

16비트 자체는 8비트가 2개 모여서 2바이트 65536 개의 경우의 수를 나타내는 것이 맞지만,

16비트 체계1바이트를 관리하기 위한 메모리의 수가 16비트 수만큼 즉, 65536개만큼 있다는 의미입니다.

우리가 메모리 주소를 표현할 때, 0x0000이라고 쓰는 것을 흔히 볼 수 있습니다.
접두사 0x를 쓰는 것 자체로 우리는 메모리 주소체계가 16비트 체계임을 간접적으로나마 느낄 수 있는 부분이었습니다.

사실 전공자라면 당연하겠는데,, 비전공자인 저는.. 이 글을 쓰면서 이걸 눈치챘습니...ㅎㅎ... 저는 간접적으로도 못 느꼈어요;; 이제 알음.. 여튼 각설하고요

그럼 16비트 체계에 대한 계산을 해보겠습니다.

1byte를 관리하기 위한 메모리의 주소가 16비트(2^16=65536)만큼 있다는 의미이고,
돌려말하면 65536바이트 메모리를 16비트 체계로 관리할 수 있다는 말입니다.

(그냥 답변 그대로의 내용입니다.
혹시나 이해 안 되시면 그냥 받아들이면 될 거 같습니다.
저는 0x0000 이러한 표현으로 65536개를 표현할 수 있다는 의미로 받아들였습니다. ㄹㅇ 16비트 체계로요..)

그럼 65536에 대해서 계산해보겠습니다.
65536은 16비트로 2^16입니다.
다시 표현하면,
16bit = 2^16 = 65536
그런데, 1024byte는 1KB입니다.
여기서 1024는 2^10입니다.
즉, 2^6 x 2^10으로 65536바이트는
2^6 x 1KB입니다.

2^6은 64입니다.
고로 64 x 1KB는 당연한 결과이지만, 64KB입니다.

65536 = 2^16 = 2^6 x 2^10 = 2^6 x 1KB = 64 x 1KB = 64KB입니다.

16비트 체계는 64KB의 메모리를 사용할 수 있습니다.

2-3 64bit

그럼 현재는 64비트 체계입니다.

즉, 1바이트를 관리하기 위한 메모리의 주소가 64비트만큼 있다는 것입니다.
다시 말하면 64비트에 해당하는 바이트를 64비트 체계로 관리할 수 있다는 것인데,

64비트면, 2^64 입니다.

단위를 나눠보면,
2^10 x 2^10 x 2^10 x 2^10 x 2^10 x 2^10 x 2^4 입니다.

2^10은 1024니깐, 곱하다보면, 단위가 올라가겠군요.. 한번 보겠습니다.

2^10 = 1024Byte = 1KB (1)
x 2^10 = 1024KB = 1MB (2)
x 2^10 = 1024MB = 1GB (3)
x 2^10 = 1024GB = 1TB (4)
x 2^10 = 1024TB = 1PB(페타바이트) (5)
x 2^10 = 1024PB = 1EB(엑사바이트) (6)
x 2^4 = 16EB

헙....겁나 큰 수 입니다.

즉 우리는 1바이트에 대해서 16EB(엑사 바이트)만큼 메모리주소를 가지고 관리할 수 있다는 것입니다.

(하지만, 프로그램들이 1바이트 용량으로 끝나지 않는다는 점..ㅎ)


이처럼 비트체계에 대해서 이번에 제대로 알고 갑니다.
64bit 운영체제와 32bit 운영체제의 차이도 어마어마하다는 걸 이번에 느끼게 됩니다.

3. 요약

단어의 혼용에서 제대로 알지 못했던 부분인데, 이제 알게 됩니다.
요약하자면,
16비트 체계와 16비트는 다르다는 것,
16비트 체계로 메모리 용량을 갖는다는 것은,
1바이트를 관리하기 위한 메모리주소가 16비트의 수만큼(65536) 있다는 것, 65536바이트 메모리를 16비트 체계로 관리할 수 있다는 것.

을 의미합니다.

728x90
Comments