Bit, byte...
bit는 정보의 최소단위이다. 0과 1의 값을 가진다.
1 byte = 8bit이다.
즉, 1바이트는 $2^8$까지 표현 가능하다.
C언어에서 inteager(정수형)은 4바이트를 가진다.
그러면 $2^{32}$만큼을 표현할 수 있다. signed int의 경우는 음수까지 표현하기 위해서 $-2^{31}$에서 $2^{31}$의 범위를 가진다.
우리가 보통 ~기가, ~메가 라고 부르는 것은 ~기가바이트이다.
앞서 회로 이론에서 설명했듯이 기가, 메가, 킬로는 10의 n승을 의미한다.
1 킬로바이트(1 kB) = 1000 바이트
1 메가바이트(1 MB) = 1000 킬로바이트 = $10^6$바이트
1 기가바이트(1 GB) = 1000 메가바이트 = $10^6$ 킬로바이트 = $10^9$바이트
이다.
10의 3n승으로 생각하면 되는데,
키비바이트와 혼동하지 않도록 한다.
이전에는 1024($2^10$)과 1000을 혼용해서 킬로라고 퉁쳤고
그 때문에 256기가바이트의 하드를 사도 실제로는 양이 더 적었다.
파는 사람이 말하는 건 1기가에 $10^9$바이트이고 컴퓨터가 인식하는건 $2^30$이었으니. 그랬겠다.
https://ko.wikipedia.org/wiki/%ED%82%A4%EB%B9%84%EB%B0%94%EC%9D%B4%ED%8A%B8
아 찾아보니 여기에 잘 나와있긴 하다.
암튼 이렇게 혼란스러워서 키비, 메비라는 용어가 생겼다.
여담으로 네트워크 속도를 파악할 때
Mbps 라는 단위나, BPS... 대문자는 byte이고 소문자는 bit니까
1/8정도이니 헷갈리지 않도록 주의하자.
1Mbps = 1메가비트 퍼 세크
=> 0.125 메가바이트 퍼 세크
1초에 0.125 메가바이트