데이터 용량 변환

데이터 용량을 10진계와 2진계로 동시에 표시 — KB와 KiB, MB와 MiB를 나란히. 비트, 정확한 바이트 수, 각 OS의 표시까지.

정확한 바이트 수
1,000,000,000,000
10진계
1000의 거듭제곱 — SI, 드라이브 제조사, macOS
  • B1,000,000,000,000
  • KB1,000,000,000
  • MB1,000,000
  • GB1,000
  • TB1
2진계
1024의 거듭제곱 — IEC, Windows, RAM
  • KiB976,562,500
  • MiB953,674.3164
  • GiB931.3226
비트
1000의 거듭제곱 — 통신 속도는 언제나 10진계
  • bit8,000,000,000,000
  • Kb8,000,000,000
  • Mb8,000,000
  • Gb8,000
  • Tb8
각 도구에서 표시되는 방식

같은 바이트 수의 다섯 가지 읽기입니다. 어느 것도 틀리지 않았고, 나눗수나 레이블, 또는 둘 다에서 어긋날 뿐입니다.

  • Windows 탐색기 — 1024로 나누고 10진계 레이블을 유지931 GB
  • macOS Finder — 1000으로 나눔1 TB
  • ls -lh, du -h — 1024로 나눔932G
  • ls --si, du --si — 1000으로 나눔1.0T
  • 드라이브·USB 제조사 — 1000으로 나눔1 TB

이 도구가 하는 일

용량을 어느 단위로든 입력하면 — 1 TB, 1536 MiB, 900 Mb, 또는 파일 목록에서 복사한 맨 바이트 수 — 두 단위 체계로 나란히 변환되어 돌아옵니다. 정확한 바이트 수와, 당신의 머신의 각 도구가 그것을 어떻게 보고할지도 함께.

두 체계는 토글 뒤가 아니라 나란히 보입니다. 데이터 용량의 모든 어려움이 둘 다 쓰이고 둘 다 자신을 같은 이름으로 부른다는 것이기 때문입니다. 홀로 있는 숫자는 어느 것이 그것을 냈는지 말해 주지 않습니다.

킬로바이트에 뜻이 둘인 이유

컴퓨터는 메모리를 2의 거듭제곱으로 주소 지정하므로, 1024가 기계에게는 1000이 결코 그러지 못할 방식으로 자연스러운 둥근 수입니다. 일찍이 "킬로"가 1024에 빌려졌습니다. SI의 천에 충분히 가깝고 둘이 벌어지리라 아무도 예상하지 않았기 때문입니다. 둘은 벌어졌습니다.

오차는 아래쪽 끝에서 작고 매 단계에서 복리로 붑니다. 킬로바이트는 2.4%, 메가바이트는 4.9%, 기가바이트는 7.4%, 테라바이트는 10% 다릅니다. 페타바이트에 이르면 두 답이 12.6% 벌어져, 더는 반올림 세부가 아닙니다:

KB    1,000                 KiB    1,024                 # 2.4% 차이
MB    1,000,000             MiB    1,048,576             # 4.9%
GB    1,000,000,000         GiB    1,073,741,824         # 7.4%
TB    1,000,000,000,000     TiB    1,099,511,627,776     # 10.0%

1998년 IEC는 1024의 거듭제곱에 저마다의 이름 — 키비바이트, 메비바이트, 기비바이트, 그리고 KiB, MiB, GiB 기호 — 을 주었습니다. 바로 그 모호함을 써서 없앨 수 있도록. 이름은 일상 사용에서 정착하지 못했지만 기호는 정착했고, KiB라 이름 붙은 것은 모호하지 않습니다. KB라 이름 붙은 것은 지금도 모호합니다.

누가 어느 방식으로 세는가

나뉨은 무작위가 아닙니다. 대충 주소 지정되는 하드웨어와 팔리는 하드웨어 사이의 선을 따라 떨어집니다:

  • RAM은 늘 2진계입니다. 16 GB 메모리 모듈은 16 GiB입니다. 메모리는 2진 행과 열로 주소 지정되어 원해도 둥근 10진수가 될 수 없기 때문입니다.
  • 드라이브는 늘 10진계입니다. 1 TB 디스크를 파는 제조사는 1,000,000,000,000바이트를 뜻하고, 누가 그것에 불평하기 훨씬 전부터 그랬습니다.
  • Windows는 2진계지만 10진계 레이블을 씁니다. 1024로 나누고 GB라 쓰는데, 사람이 실제로 겪는 혼란의 대부분이 거기서 옵니다.
  • macOS는 2009년 Snow Leopard 이래 10진계입니다. Windows에서 931 GB로 읽히는 같은 드라이브가 Mac에서는 1 TB로 읽히고, 어느 머신도 고장 나지 않았습니다.
  • Linux 명령줄 도구는 둘 다 줍니다: ls -lh와 du -h는 1024로 나누고, 같은 명령의 --si 플래그는 1000으로 나눕니다.
  • 네트워크는 늘 10진계이고 바이트가 아니라 비트를 셉니다.

931 GB로 표시되는 1 TB 드라이브

이것이 데이터 용량에 대한 단일로 가장 흔한 물음이고, 답은 사라진 공간이 없다는 것입니다. 드라이브는 상자가 말한 그대로를 담습니다. Windows가 그저 그 바이트를 1000이 아니라 1024로 세 번 나누고, 그러고서 아니라고 하는 레이블을 표시할 뿐입니다.

1,000,000,000,000바이트          # 제조사가 판 것
/ 1024 = 976,562,500 KB          # Windows가 한 번 나눔
/ 1024 = 953,674.32 MB           # 두 번
/ 1024 = 931.32 GB               # 세 번, 그러고 GB라 레이블

드라이브는 광고보다 작지 않고 운영체제는 바이트 수에 대해 거짓말하지 않습니다. 잘못된 것은 레이블뿐입니다: Windows가 931 GB라 부르는 것은 사실 931 GiB이고, 931 GiB는 1 TB입니다. 어떤 용량이든 이 도구에 붙여넣으면 두 열이 그 관계를 곧바로 보입니다.

비트와 바이트, 그리고 8의 인수

1바이트는 8비트이고, 둘은 쓸 때 한 글자의 대소로만 구별됩니다: 대문자 B는 바이트, 소문자 b는 비트를 뜻합니다. Mb와 MB는 8의 인수로 다르고, 이는 계산을 헛소리로 만들기에 넘치도록 충분합니다.

이것이 가장 중요한 것은 네트워크 속도로, 초당 비트로 인용되는 반면 파일 크기와 다운로드 진행은 바이트입니다. 100 Mb/s 연결은 최대 12.5 MB/s로 움직이므로, 1 GB 파일이 숫자가 약속하는 듯한 10초가 아니라 약 80초 걸립니다. 무언가가 당신을 조르는 것이 아닙니다. 단위가 애초에 같지 않았습니다.

여기서 비트는 10진계로만 표시되고, 그것은 단순화가 아닙니다. 네트워크 속도는 10의 거듭제곱으로 정의되므로, 메가비트는 그 말이 쓰이는 어디서나 100만 비트입니다. IEC가 2진 비트 단위를 정의하기는 하지만 본질적으로 아무것도 그것을 쓰지 않고, 그것을 제공하면 아무도 뜻하지 않는 변환을 부를 것입니다.

여기 숫자가 정확한 이유

JavaScript 숫자는 정수를 정확히 담는 것이 약 9천조 — 2^53 — 까지뿐입니다. 엑사바이트는 10^18로 그것을 훌쩍 넘어, 보통 산술로 만든 변환기는 큰 저장 물음이 사는 바로 그곳에서 자릿수를 잃기 시작해 마지막 몇 자리가 자신만만하게 틀린 바이트 수를 보고합니다.

여기서는 모든 것이 대신 임의 정밀도 정수를 씁니다. 그것은 덜 뻔한 무언가도 삽니다: 관여하는 모든 인수가 10의 거듭제곱이나 2의 거듭제곱이고 둘 다 어떤 10의 거듭제곱을 고르게 나누므로, 이 단위 사이의 모든 변환이 유한 소수로 끝납니다. 1 TB는 대략 931.32 GiB가 아니라 — 931.322574615478515625 GiB이고, 남는 것이 없습니다. 여기 행은 읽기 위해 반올림되었고, 그 위의 바이트 수가 온전한 답입니다.

자주 묻는 질문

킬로바이트는 1000바이트인가요, 1024바이트인가요?
세는 사람에 따라 둘 다입니다. SI와 드라이브 제조사는 1000을, Windows와 RAM 용량은 1024를 씁니다. IEC는 1024 단위에 따로 이름을 붙여 — 키비바이트, 메비바이트, 기비바이트 — 모호함을 없앴지만 옛 레이블도 여전히 어디에나 있습니다. 이 도구는 하나를 고르지 않고 두 읽기를 한꺼번에 보입니다.
제 1 TB 드라이브가 931 GB만 표시되는 이유는 무엇인가요?
사라진 것은 없습니다. 제조사는 1000의 거듭제곱으로 세어 1,000,000,000,000바이트를 당신에게 팔았습니다. Windows는 그것을 1024로 세 번 나눠 931.32를 얻고 그 결과에 GB라 붙입니다. 같은 바이트, 다른 나눗수, 헷갈리는 레이블 — 그것이 보이는 것은 사실 931 GiB입니다.
MB와 MiB의 차이는 무엇인가요?
메가바이트는 1,000,000바이트, 메비바이트는 1,048,576바이트라 MiB가 약 4.9% 큽니다. MiB는 정의상 모호하지 않습니다. MB는 그것을 표시한 도구가 어느 관례를 따르는지 알 때만 모호하지 않습니다.
제 다운로드가 연결 속도보다 느린 이유는 무엇인가요?
대개 둘이 다른 단위로 측정되기 때문입니다. 연결 속도는 초당 메가비트로, 다운로드는 초당 메가바이트로 인용되고, 1바이트에 8비트가 있습니다. 100 Mb/s 회선은 약 12.5 MB/s에서 머뭅니다.
제 호스팅이나 업로드 제한 25 MB는 실제로 무엇을 뜻하나요?
서비스에 달렸고, 안전한 가정은 더 작은 수입니다. 제한이 25 × 1,000,000바이트로 걸리면 25 MiB를 살짝 밑도는 파일이 거부됩니다. 여기서 파일 크기를 두 열로 변환하면 두 읽기를 모두 넘는지 곧바로 보입니다.
아주 큰 용량도 다룰 수 있나요?
네. 산술이 임의 정밀도 정수를 쓰므로, 엑사바이트, 제타바이트, 요타바이트도 보통 부동소수점 숫자가 2^53을 넘어 마지막 자릿수를 잃는 것처럼이 아니라 정확히 변환됩니다.
제가 입력한 것이 서버로 전송되나요?
아니요. 브라우저 안의 산술입니다. 아무것도 업로드되거나 기록되지 않고, 네트워크 연결 없이 동작합니다.