김민장님이 쓰신 "프로그래머가 몰랐던 멀티코어 CPU이야기"를 읽다가 정말 제가 몰랐던 소소하지만 재미있는 부분이 있어 정리하려고 합니다.
컴퓨터가 데이터를 처리하는 단위를 보통 Byte라고 합니다. 이 Byte는 컴퓨터의 기억장치의 크기를 나타내는 단위로 전기적 신호로 인식 가능한 Bit(0 또는 1)들의 연속입니다.
일반적으로는 8bit를 1byte라고 하죠. 물론 12bit가 1byte인 컴퓨터도 있고 7bit가 1byte인 컴퓨터도 있습니다.
그리고 컴퓨터는 조금 전에 말씀드린 Bit를 인식하기 때문에 일반적으로 크기를 계산할 때 2의 승수로 계산합니다. 따라서 1KB = 1024Bytes, 1MB = 1024KB로 알고 있었습니다.
그런데 생각해보면 우리가 일반적으로 사용하는 단위들 Meter와 Gram의 경우 1 Kilo mter는 1000meter, 1 Kilo gram은 1000gram으로 표시합니다.
지금까지는 '분야가 다르니까 다르게 사용하나 보다' 라고 생각했습니다.
하지만 책을 읽다 보니 실제로 지금까지 알고 있던 1KB는 1KiB라고 쓰는 것이 정확하다고 합니다. 하지만 관습적으로 1KB라고 쓴다고 합니다.
우리가 흔히 쓰는 Kilo는 Metric prefix또는 SI decimal prefix라고 하는데 10의 3승을 의미하고 Kibi는 IEC binary prefix라고 하여 2의 10승을 의미합니다.
따라서 1KiB는 1024Bytes가 되는 것이고 1KB는 1000Bytes가 되는 것이죠.
우리 컴퓨터를 보면 하드 디스크나 메모리의 용량이 우리가 산 것보다 작게 표시되는 것을 확인할 수 있는데요.
지금까지 '이 노무 시키들 치사하게 쫌 빼뭇네'라고 생각했는데 kilobyte와 kibiibyte의 차이에 의한 것이 아닌가 생각합니다.