목차

메모리 주소값을 16진수로 표현하는 이유?

결론부터 말하면, 2진수나 10진수보다 16진수가 주소값을 짧게 표현할 수 있기 때문이다.

컴퓨터는 기본적으로 0과 1만 처리할 수 있다.

컴퓨터는 기본적으로 2진법을 사용하고 있다.

컴퓨터는 전기 신호로 작동하는 스위치인 트랜지스터로 구성되어 있다. 트랜지스터는 전기 신호가 들어오지 않으면 꺼지고(OFF), 들어오면 켜진다(ON). 이를 컴퓨터는 0(OFF)과 1(ON)로 인식하고 계산하기 때문에 2진법을 사용하는 것이다.

즉, 컴퓨터는 2진법으로 표현되는 수를 통해 모든 정보를 주고 받는 것이다.

CPU의 최소 처리 단위, 바이트

CPU는 정보를 처리하기 위한 최소 단위를 8비트로 정하고, 이를 1바이트로 정의했다.

참고로 최소 단위가 8비트인 이유는 컴퓨터가 영미권에서 발전했기 때문이다. 2진법으로 이루어진 수를 사람이 이해하고 인식할 수 있는 문자로 저장하는 코드들의 숫자가 7~8비트로 충분했기 때문이다. 이를 숫자로 표현한 것이 ASCII 코드이다. 역사적으로 1바이트가 7비트, 9비트, 12비트로 존재했던 시기가 있기도 했지만, 표준화를 위해 대부분의 프로그래밍 언어에서 8비트는 1바이트를 의미한다.

1비트는 0 또는 1을 의미하며, 1바이트를 2진법으로 표현하면 다음과 같다.

1111 1111
0000 0010
0000 0000

1바이트는 총 8자리 수로 표현할 수 있으며, 10진법으로 256개의 수(0 ~ 255)를 표현할 수 있다.

이를 16진법으로 나타내면 0x00 ~ 0xFF 로 표현할 수 있다. 16진법은 1부터 9까지 10진수와 동일하지만, 10부터 16까지는 알파벳 A~F로 표현한다. 0x 는 16진수임을 표현하기 위해 사용하며, 특별한 의미는 없다.

참고로 unsigned 자료형은 양의 정수값만 가지며, signed 자료형은 맨 왼쪽의 비트가 1 이면 음수로 취급한다.

1000 0001

unsigned 자료형으로 위의 2진수는 10진법으로 129 이지만, signed 자료형으로는 -1 이다. 즉, unsigned 자료형의 최대값의 절반만큼 음수로 넘어간 것이 signed 자료형이라고 이해할 수 있다.

bit_operation.drawio.png

32비트 운영체제, 64비트 운영체제?