2. 저장공간의 단위

emdev·2023년 3월 29일
0

C언어

목록 보기
2/4

이번 파트는 블로그에서 작성한 순서와는 다르게 저장공간의 단위부터 설명을 하고자 한다.

어떤 분야를 공부함에 있어서 단어의 정의, 또는 단위를 알아야만 다음 단계의 공부가 될 만큼 중요한 사항이다. 그리고 이런 개념은 프로그래밍의 세계에서도 통용되는 이야기이다.

이에 대하여 이야기를 시작하도록 하겠다.


1) 프로그래밍에서 사용하는 가장 작은 단위, bit

제목을 프로그래밍에서 사용하는 작은 단위라고 거창하게 달아놓긴 했지만, 세세하게 따지고 들어가면 저장 장치(RAM, ROM)에서 전기적인 신호가 low level(0)로 저장이 되는지, 혹은 high level(1)로 저장이 되는지를 표현하는 단위라고 표현하는게 더 가깝다.

네이버에선 이와 같이 설명을 한다.

0 또는 1을 표현하는 하나의 공간
-네이버 지식백과

좀 더 자세히 설명을 하자면,
digital 회로에는 3-state, high, low의 상태를 가지고 있는데, 3-state를 제외한 high, low만을 사용한다.
이는 곧 on-off의 개념을 사용하고, 다시 말하면 2진법에 의해서 정보의 교환이 이루어지는 것이다.
물론 3진법 반도체 소자도 개발이 되었다고 뉴스가 있긴 하지만, 2023년 현재까진 2진법 시스템에 의해서 모든 정보가 저장, 교환이 이루어진다.

2) byte와 word

byte는 8개의 bit가 모여서 표현하는 단위이다. HDD나 DDR RAM의 용량을 표기할 때, 사용하는 bytes가 이것을 가리키기도 한다.

그럼 word는 무엇일까?

일단 word의 정의부터 위키에서 알아보면,

하나의 기계어 명령어나 연산을 통해 저장된 장치로부터 레지스터에 옮겨 놓을 수 있는 데이터 단위이다.
-위키백과

라고 설명을 하고 있다.
좀 더 쉽게 설명을 하자면, 32-bit CPU를 사용하는 환경에서는(=CPU의 데이터 버스의 폭) word가 32-bit인 것이고, 컴파일러마다 다르긴 하지만, 8-bit CPU를 사용하는 곳은 8-bit혹은 16-bit가 될 수 있다.

그래서 이를 기준으로 word, halfword, double word라고 표현을 해서 사이즈를 설명하기도 한다.
그리고 이는 int사이즈에 영향을 주기도 하는데, 이에 대한 이야기는 data type에 관하여 이야기를 하면서 설명하도록 하겠다.

크리에이티브 커먼즈 라이선스
이 저작물은 크리에이티브 커먼즈 저작자표시-비영리-변경금지 4.0 국제 라이선스에 따라 이용할 수 있습니다.

profile
감성 충만한 월하광인이 만든 velog

0개의 댓글