이미 올리신 사진에 지수함수의 활용법이 자세하게 써있습니다만.
예를 들어 1GB USB는 아래 식에 따라 실제로는 컴에서는 0.931GB로 인식됩니다.
1 x (1000/1024)^3 = 0.931
그 이유를 물으시는 거라면...
컴의 기본작동 원리를 아셔야 하는데
컴은 반도체로 구성되어 있고 반도체는 and, or, not의 논리회로 구성되어 있는데
논리회로 라는게 0, 1밖에 처리를 못합니다.
그래서 논리회로 1개면 0, 1의 2개 숫자만 처리,
논리회로 2개가 병렬이면 00, 01, 10, 11의 2^2개 숫자만 처리,
논리회로 3개면 000~111의 2^3개의 숫자만 처리 가능합니다.
그런데 사람은 10개 숫자를 쓰고, 미국놈들은 kilo라는 단위가 최소 자릿수 단위인지라 이놈들이 지 멋대로 1 kilo 씩 끊어읽기로 했습니다.
잘 아시다시피 1 kilo는 10^3인 1000 이구요.
그런데 컴의 숫자는 2진수를 쓰잖아요.
그래서 2진수 중에 1kilo에 가장 가까운 수를 최소 자릿수로 쓰자고 찾아보니 2^10이 1024인지라 2^10 을 1K로 표시하자고 지들끼리 정해버린 겁니다.
감히 디지털 강국이 될 대한민국하고 한마디 상의도 없이 말이죠.
하여간에 위의 이유로 컴에서는 최소 자릿수 단위가 1024배씩 증가하고 한번 증가할때마다 1K, 1M, 1G, 1T 등으로 표시를 했어요.
그래도 일말의 양심은 있었는지 원래 10진수에서는 1k로 소문자로 표시하던 것을 대문자로 표기하기로 했죠. (Mega는 원래부터 mili와 구분을 위해 대문자표기, giga, Tera 는 잘 모르겠음)
그리고 컴의 최소단위인 0,1은 1bit 그리고 8개 bit이 모인 것은 1Byte 로 표시했어요.
당시 1Byte면 2^8=256 개의 숫자를 표시할 수 있었으므로 지네 알파벳하고 몇개 특수기호를 다 표현할 수 있다고 또 디지털 강국 대한민국을 빼고 지들 맘대로 8bit을 1Byte로 정해버린 거예요.
그래서 컴 문자의 최소단위는 1Byte가 됐고 이건 줄여서 1B라고 표기했습니다.
대한민국에서 정했으면 한 1024bit를 1B로 정해버리는 건데...ㅋㅋㅋ...헛소리구요.
이런 눈물없이는 듣지못할 구구절절한 사연으로 1B가 생겼고, 1024배 씩 증가할때마다 자릿수를 나타내는 K, M, G, T 를 붙이게 됐습니다.
그럼 1024는 알겠는데 왜 USB는 1024로 나누는 거냐?
이건 상술이었습니다.
저장매체 회사들이 언제부터인지 저는 잘 모르지만 이놈들이 실제 용량보다 많게 보일려고 1000B를 1KB라고 스티커를 붙여서 팔아먹기 시작한 거예요.
정확하게 하려면 1KB가 아니라 1kB인 거죠.
그치만 일반인들을 개돼지 수준으로 본 업체들이 소문자 k를 대문자 K로 바꿔버린 거예요.
이게 Mega 단위로 오면서부터는 10진수에서도 M로 표기하기 때문에 더 당당하게 속이기 시작했죠.
이 관행이 굳어져 현재 모든 저장매체들은 용량을 10진수의 자릿수 표기법을 쓰게됐습니다.
그러므로 아래 관계가 성립해요.
저장매체 1KB = 컴 (1000/1024)KB
저장매체 1MB = 컴 (1000/1024)^2 MB
저장매체 1GB = 컴 (1000/1024)^3 GB