실행 결과를 자세히 보면 ac는 정상적으로 결과가 나왔지만, bd는 정확한 값으로 출력되지 않았습니다. 왜 이런 현상이 발생했을까요?

    int는 정수를 저장하는 데 필요한 메모리 공간을 4바이트 사용한다고 하였습니다. 설명한 바와 같이 컴퓨터는 모든 정보를 0과 1, 즉 2진수로 처리합니다. 이때 0 또는 1을 저장할 수 있는 메모리 공간을 비트(bit)라고 합니다. 비트는 컴퓨터가 정보를 저장하는 최소 공간으로, 8개의 비트가 모인 공간을 바이트(byte)라고 합니다. 그러므로 4바이트는 32비트와 같습니다. 1비트로 표현 가능한 숫자는 01 두 개뿐입니다. 2비트로 표현 가능한 숫자는 2진수 00, 01, 10, 11, 즉 10진수로 0, 1, 2, 3을 표현하고 저장할 수 있습니다. 확장하여 3비트일 때는 어떨까요?

    000, 001, 010, 011, 100, 101, 110, 111, 즉 정수 0~7까지 총 8개의 정수를 표현하고 저장할 수 있습니다. 그러므로 n비트로 저장 가능한 숫자의 범위는 0 ~ 2n(n은 비트의 개수) – 1까지 입니다.

    표 2-1 | 비트 개수에 따른 메모리 저장 가능 범위

    비트 개수

    저장 가능 범위

    메모리

    저장 가능 개수

    저장 숫자 범위

    1비트

    0, 1

    2

    0과 1

    0~(21-1)

    2비트

    00, 01,

    10, 11

    4

    0~3

    0~(22-1)

    3비트

    000, 001

    010, 011

    100, 101

    110, 111

    8

    0~7

    0~(23-1)

    ...

    ...

    ...

    ...

    n비트

    000 .... 00

    000..... 01

    ....

    111 .... 11

    2n

    0~(2n-1)

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.