킬로바이트, 킬로 비트 및 킬로바이트의 차이점은 무엇입니까?


45

이 질문 은 크기를 측정하는 세 가지 방법 인 kibibyte , kilobit 및 일반적인 kilobyte 의 차이점에 대해 궁금해했습니다.

이러한 측정의 용도가 다르지만 (데이터 전송 속도는 비트 / 초로 측정 됨) Mb와 MB와 MiB의 차이를 알 수 있는지 확실하지 않습니다.

다음은 이 답변 에서 얻은 주석입니다 ( 강조 광산 ).

C64에는 65536 바이트 의 RAM이 있습니다. 일반적으로 메모리 크기는 kibiBytes , 킬로 비트 단위의 데이터 전송 속도 및 제조 업체가 생각하는 바이트 단위의 대용량 저장 장치로 지정됩니다 . 하드 드라이브는 레이블에서 T, G, M 및 k를 사용하고 Windows는 Ti , Gi , Miki 크기를보고합니다 . 그리고 그 1.44MB 플로피? 1.44MB 또는 1.44MiB가 아니며 1.44 킬로바이트입니다. 1440kiB 또는 1'474'560 바이트입니다. – 셋째


12
앞으로 몇 년 동안 혼란이있을 것입니다. 컴퓨팅 초기에 사람들은 컴퓨터에 대해 1000이 아닌 1024의 요소로 작업하는 것이 훨씬 쉽다는 것을 발견했습니다. 따라서 수십 년 동안 표준 SI 접두사 "kilo"는 비표준 1024에 사용되었으며 여전히 컴퓨팅에서 사실상의 표준이되었습니다. 어쨌든 일부 사람들은 여전히 ​​SI 1000을 사용했습니다. 혼란을 없애기 위해 "kibi"는 공식적으로 1024 요소로 정의되었지만 쉽게 전환하기에는 너무 늦었습니다. "kilo"는 아직 한동안 1024 개의 요소로 정기적으로 사용되고 있습니다.
Steve314

그들이 바보 같은 소리를내는 접두사를 선택하지 않았다면 채택에 도움이되었을 것입니다. 머리 글자 어라도 누군가가 단어를 "정신적으로 흡인"해야합니다. 나는 단순히 "kibibyte"등을 사용 하지 않을 것이다 .
tgm1024

답변:


63
1 KiB (Kibibyte) = 1,024 B (Bytes) (2^10 Bytes)
1 kb  (Kilobit)  =   125 B (Bytes) (10^3 Bits ÷ (8 bits / byte) = 125 B)
1 kB  (Kilobyte) = 1,000 B (Bytes) (10^3 Bytes)

SI 접두사와 같은 방식입니다. k(1x10 3 ), M(1x10 6 ), G(1x10 9 ) 따라서 확장하여 :

1 MiB (Mebibyte) = 1,048,576 B (Bytes) (2^20 Bytes)
1 Mb  (Megabit)  =   125,000 B (Bytes) (10^6 Bits ÷ (8 bits / byte) = 125,000 B)
1 MB  (Megabyte) = 1,000,000 B (Bytes) (10^6 Bytes)

그들은 기본 2에 있기 때문에 약간의 차이가있는 유일한 사람은 없습니다베이스 (10) (예를 들어, 모든 숫자 2와 동일는 IEC 이진 접두어 (기비 / mebi / gibi 등)이다 뭔가 대신에 10 일을 ). SI 접두어를 사용하는 것이 훨씬 쉽습니다. 또한 캐나다 (내 국가)는 미터법을 사용하므로 예를 들어 1kg = 1000g(또는 1k anything = 1000 base things)에 익숙합니다 . 이들 중 어느 것도 잘못되었거나 옳지 않습니다. 어떤 것을 사용하고 있고 실제로 무엇을 알고 있는지 확인하십시오.

주석을 달래려면 :

1 Byte (B) = 2 nibbles = 8 bits (b)

16 진 편집기를 살펴보면 모든 것이 2 개의 16 진 문자로 분리 된 것입니다. 각 16 진 문자는 니블의 크기이며 2 바이트는 1 바이트입니다. 예를 들어 :

198 (decimal) = C6 (hex) = 11000110 (bits)

5
+1 바이트에 8 비트가 있다고 언급하면 ​​유용 할 수 있습니다.
paradroid

4
... 나비는 4 비트 (또는 반 바이트)라는 것을 잊지 마십시오!
Linker3000

4
소문자 "b"가 "바이트"를 축약하기 위해 잘못 사용되는 경우도 있습니다. 메가 바이트 (MB)와 메가 비트 (MB)와 같은 약어에서 "비트"를 사용하고 "b"와 거리를 두는 곳이 많이 있습니다.
James

4
접두사 kilo는 K가 아니라 k로 축약됩니다.
garyjohn

1
@Redandwhite Nope, 그들은 스토리지를 측정하기 위해 10을 사용하지만 우리의 컴퓨터는 2를 사용합니다. 이것은 상자에 인쇄 된 것과 컴퓨터에 나타나는 것의 불일치를 설명합니다. 예를 들어 500GB (box) = 465.7GiB (computer)(그리고 그것이 당신을 얻는 방법입니다).
다람쥐

9

간단하고 이해하기 쉬운 몇 가지 기본 용어가 있습니다.

* A bit      (b)   is the smallest unit of data comprised of just {0,1}
* 1 nibble   (-)   = 4 bits (cutesy term with limited usage; mostly bitfields)
* 1 byte     (B)   = 8 bits (you could also say 2 nibbles, but that’s rare)

비트와 바이트 (접두사 포함) 사이를 변환하려면 여러 번 또는 8로 나누십시오. 좋고 간단합니다.

이제 큰 그룹의 데이터를 측정하는 시스템 ( decimalbinary) 이 있기 때문에 상황이 조금 더 복잡해집니다 . 수년 동안 컴퓨터 프로그래머와 엔지니어는 둘 다에 대해 동일한 용어를 사용했지만 결국 혼란은 결국 적절한 접두사 세트 를 표준화하려는 시도를 불러 일으켰습니다 .

각 시스템은 비트 또는 바이트에 적용 할 수있는 유사한 접두사 세트를 사용합니다. 각 접두사는 두 시스템에서 동일하게 시작되지만 이진 접두사는 그 후 베이비 토크처럼 들립니다.

10 진법은 10 진법으로 대부분의 사람들이 10 개의 손가락을 가지고 있기 때문에 익숙하고 편안합니다. 이진 시스템은 두 개의 전압 상태를 갖기 때문에 대부분의 컴퓨터가 익숙하고 편안하게 사용하는 base-2입니다.

십진법은 대부분의 사람들에게 명확하고 사용하기 쉽습니다 (머리에 곱하기에 간단합니다). 각 접두사는 1,000 씩 증가합니다 (이유는 완전히 다른 문제입니다).

이진 시스템은 컴퓨터를 사용하지 않는 대부분의 사람들이 사용하기가 훨씬 어렵고 심지어 프로그래머조차도 머리에 임의로 많은 수의 숫자를 넣을 수 없습니다. 그럼에도 불구하고, 그것은 2의 배수라는 단순한 문제입니다. 각 접두사는 1,024 씩 올라갑니다. 하나의“K”는 1,024입니다. 왜냐하면 이는 2의 소수에 1,000의 소수“k”에 가장 가깝기 때문입니다 (이 시점에서는 사실 일 수 있지만 각 접두사마다 차이가 급격히 증가합니다).

동일한 접두사를 가진 비트 및 바이트의 숫자는 동일합니다.

* Decimal:
* 1 kilobyte (kB)  = 1,000 B  = 1,000^1 B           1,000 B
* 1 megabyte (MB)  = 1,000 KB = 1,000^2 B =     1,000,000 B
* 1 gigabyte (GB)  = 1,000 MB = 1,000^3 B = 1,000,000,000 B

* 1 kilobit  (kb)  = 1,000 b  = 1,000^1 b           1,000 b
* 1 megabit  (Mb)  = 1,000 Kb = 1,000^2 b =     1,000,000 b
* 1 gigabit  (Gb)  = 1,000 Mb = 1,000^3 b = 1,000,000,000 b

* …and so on, just like with normal Metric units meters, liters, etc.
* each successive prefix is the previous one multiplied by 1,000



* Binary:
* 1 kibibyte (KiB) = 1,024 B  = 1,024^1 B           1,024 B
* 1 mebibyte (MiB) = 1,024 KB = 1,024^2 B =     1,048,576 B
* 1 gibibyte (GiB) = 1,024 MB = 1,024^3 B = 1,073,741,824 B

* 1 kibibit  (Kib) = 1,024 b  = 1,024^1 b =         1,024 b
* 1 mebibit  (Mib) = 1,024 Kb = 1,024^2 b =     1,048,576 b
* 1 gibibit  (Gib) = 1,024 Mb = 1,024^3 b = 1,073,741,824 b

* …and so on, using similar prefixes as Metric, but with funny, ebi’s and ibi’s
* each successive prefix is the previous one multiplied by 1,024

십진법과 이진법의 차이는 작게 시작하지만 (1K에서는 24 바이트 또는 2.4 % 떨어져 있음) 각 레벨마다 증가합니다 (1G에서는> 70MiB 또는 6.9 % 떨어져 있음).

일반적으로 하드웨어 장치는 십진 단위 (비트 또는 바이트)를 사용하고 소프트웨어는 이진 (보통 바이트)을 사용합니다.

이것은 일부 제조업체, 특히 드라이브 제조업체가 10 진수 단위를 사용하는 이유입니다. 드라이브 크기의 사운드를 크게 만들지 만 Windows를 볼 때 예상보다 적은 크기를 발견하면 사용자가 불만을 느끼기 때문입니다. 알. 이진으로 크기를보고하십시오. 예를 들어, 500GB = 476GiB이므로 드라이브에 500GB가 포함되어 있고 이와 같이 레이블이 지정되어 있지만 내 컴퓨터 는 바이너리 476GiB ( "476GB")를 표시하므로 사용자는 다른 23GB가 어디로 갔는지 궁금합니다. (드라이브 제조업체는 종종 파일 시스템 오버 헤드가 10 진수와 이진 단위의 차이와 비교할 수 없기 때문에 "포맷 된 크기가 작습니다"라는 각주를 패키지에 추가합니다.

네트워킹 장치는 종종 역사적 이유로 바이트 대신 비트 대신 비트를 사용하며 ISP는 종종 비트를 사용하여 광고하는 것을 선호합니다. 왜냐하면 연결 속도가 1.5MiBps 대신 12Mibps보다 커지기 때문입니다. 그들은 종종 비트와 바이트, 십진수와 이진수를 혼합하고 일치시킵니다. 예를 들어, ISP가“12MBps”회선을 구독하면 12MiBps를 수신하지만 실제로는 1.43MiBps (12,000,000 / 8 / 1024 / 1024) 만 수신한다고 생각할 수 있습니다.


2
@endolith, 사실이 아닙니다. 우선, 이진 단위를 사용하는 일부 드라이브 제조업체는 실제로, 적어도 과거에는있었습니다. 둘째, 요점을 놓쳤다. 원하는 경우 드라이브에 73,400,320을 넣을 수 있으며 실제로 66 대신 70M (i) B가됩니다. 70,000,000을 사용하는 것이 더 저렴하고 여전히 70MB라고합니다. 그것은 간단한 절단 코너이며 많은 제조업체가 그것을 수행합니다. 음식을보십시오; 500G 대신 1LB와 454G를 넣습니다. 더 나쁜 것은, 454G 대신에 450G를 넣고 누락 된 4G를 반올림한다고 비난 할 것입니다. 음모가 아니라 비용 절감입니다.
Synetech

1
이진 단위를 사용하는 하드 드라이브 제조업체의 예를 제공하십시오.
endolith

1
@endolith, 이것은 역사 사이트가 아닙니다. 아마도 봄 청소를하고 오래된 드라이브를 파낼 때 사진이나 무언가를 게시 할 것입니다. 그렇지 않으면 컴퓨터 역사 박물관이나 맘 앤팝 컴퓨터 상점에 가서 오래된 하드 드라이브를 찾을 수 있습니다. 요즘 대부분의 제조업체는 의도적으로 더 큰 소리를내는 레이블을 사용합니다. 내가 말했듯이, 그들은 그것은 73400320가 그들이 원하는 경우 70메가바이트 드라이브를 만들 바이트 만들지 만, 왜 때 그들이 할 수있는 싼에서 귀찮게 여전히 기술적으로 70메가바이트 호출? 다시 말하지만, 음모가 아니며 일반적인 마케팅 사기입니다.
Synetech

2
나는 이미 비트 세이버 아카이브를 살펴 보았고 찾은 모든 예제는 십진수입니다. 드라이브 제조업체가 고객을 속이기 위해 어느 시점에서 이진수에서 십진수로 바꾼이 신화는 견해입니다. 마케팅 부서가 아니라 엔지니어가 사용하는 표준 단위를 사용하는 엔지니어가 작성했습니다. 70,000,000 바이트의 IBM 3340 드라이브 "70MB"를 호출하는 것은 논리적이고 제정신입니다. 이것이 바로``메가- ''가 의미 한 것이며 사용자가 기대하는 것입니다. Microsoft Windows와 같이 일부 장소에서는 "66MB", 다른 곳에서는 "68,359KB"라고 부르는 것은 미쳤습니다.
endolith

1
@endolith, 아무도 그들이 사기 로 전환 하기 위해 십진수로 전환 했다고 말하지는 않았지만, 혼란에 대해 알고 있지만 컴퓨터에서 둥근 숫자 가 아닌 70,000,000 대신 73,400,320 바이트 드라이브를 만들 는 있지만 의도적으로 그런 방식으로 마케팅한다고 말하지 않았습니다 . "항상"이라는 말에 관해서는 바이너리 장치가 언제 사용되었는지에 대한 스레드 가 이미 있으며 오랫동안 컴퓨터가 소비자 제품이되기 전에 이미 오래되었습니다.
Synetech

-4

일부 답변이 정확하지 않습니다.

먼저 몇 가지 메모를 작성해 보겠습니다.

접두사 "kilo"는 1,000을 의미합니다. 접두사 "kilo"는 그 항목의 1000을 의미합니다. "메가"또는 백만, "기가"또는 10 억, "테라"또는 1 조 개 등의 경우에도 마찬가지입니다.

단순히 1 000을 갖는 대신 1 024가 존재하는 이유는 이진 산술이 작동하는 방식 때문입니다. 이름에서 알 수 있듯이 이진수는 기본 2 시스템입니다 (2 자리 : 0, 1). 우리가 매일 사용하는 기본 10 시스템 (0, 1, 2 ... 9)과 달리 10 자리가있는 두 자리 숫자로만 산술을 수행 할 수 있습니다.

이진 산술을 사용하여 숫자 1,000 ( 킬로 ) 에 도달하려면 부동 소수점 계산을 수행해야합니다. 즉, 1 000에 도달 할 때까지 이진 숫자가 각 작업을 수행해야합니다. 기본 10 시스템에서는 컴퓨터가 "나머지"없이 수행 할 수있는 매우 쉽고 빠른 계산 인 1 000 = 10 3 (기본 10의 거듭 제곱으로 10을 올림)이지만 기본 2 시스템에서는 1000을 얻기 위해 양수로 2를 올릴 수 없음 (항상 2의 거듭 제곱으로 2를 올릴 수 없음) 부동 소수점 연산 또는 긴 덧셈을 사용해야하며 정수 계산보다 실행 시간이 더 오래 걸립니다 2 10 = 1024

2 10 = 1 024는 일시적으로 1000에 가깝고 1 024-1의 유효 숫자는 1,000 (아주 좋은 근사치)이며 CPU 속도가 오래된 개처럼 느리고 메모리가 매우 제한되어 있음을 알 수 있습니다. , 이것은 꽤 괜찮은 근사치 였고, 빠른 실행은 말할 것도없고 작업하기 매우 쉬웠습니다.

이러한 이유로 "kilo", "mega", "giga"등의 접두어가 정확하지 않은 숫자 (1 024, 2 048, 4 096 등)로 붙어 있습니다. 그것들은 정확한 숫자를 의미하지 않았으며, 기본 10 숫자의 이진 근사치였습니다. 그들은 단순히 "기술"사람들이 사용한 전문 용어로 일어났습니다.

문제를 더욱 복잡하게하기 위해 JEDEC 은 반도체 메모리 회로에 사용되는 장치에 대한 자체 표준을 만들었습니다. 일부 JEDEC 단위를 SI (standard international) 단위 와 비교해 보겠습니다 .

Kb = 킬로 비트 (JEDEC, 1,024 비트. 대문자 'K'및 소문자 'b'참고)
kB = kiloBit (SI, 1,000 비트. 소문자 'k'및 대문자 'B'참고)

b = 비트 (JEDEC, 소문자 'b'참고)
b = ??? (SI는 단어 '비트'를 정의하지 않으므로 임의의 사용이 가능합니다)

B = 바이트 (JEDEC, 8 비트. 대문자 'B'참고)
B = ???? (SI는 "byte"라는 단어를 정의하지 않으며 "Bel"은 "DeciBel에서와 같이"로 사용됩니다)

KB = 킬로바이트 (JEDEC, 1,024 바이트, 대문자 'K'및 'B'참고)
kb = 킬로바이트 (SI, 1,000 바이트. 소문자 'k'및 소문자 'B'사용에 유의하십시오.

요점은, 다른 장소는 다른 정의를 가진 다른 접두사를 사용한다는 것입니다. 어떤 규칙을 사용해야하는지에 대한 단단하고 빠른 규칙은 없지만 사용하는 규칙과 일치해야합니다.

다운 투표로 인해 양수로 올리면 왜 이진법으로 1000을 만들 수 없는지 명확히 할 수 있습니다.

이진법 :

+----------------------------------------------------------------------------------+
| 1 024ths | 512ths | 256ths | 128ths | 64ths | 32nds | 16ths | 8ths | 4s | 2s | 0 |
+-----------------------------------------------------------------------------------

이진 시스템에서 열은 매번 두 배가됩니다. 이것은 매번 10 씩 증가하는 기본 10 시스템과 대조적입니다.

+--------------------------------------------------------------------------+
| 1 000 000ths | 100 000ths | 10 000ths | 1 000ths | 100ths | 10s | 1s | 0 |
+--------------------------------------------------------------------------+

이진수 (기본 2)에서 처음 10의 거듭 제곱은 다음과 같습니다.

2 0 = 1
2 1 = 2
2 2 = 4
2 3 = 8
2 4 = 16
2 5 = 32
2 6 = 64
2 7 = 128
2 8 = 256
2 9 = 512
2 10 = 1024

보시다시피, 이진수 2를 양의 정수로 올려서 1,000에 도달하는 것은 불가능합니다.


3
숫자 1000에 부동 소수점 산술이 필요하다고 말하면 잘못되었다고 생각합니다. 모든 종류의 번호 시스템을 사용하여 자연수를 나타낼 수 있습니다. 실제로 1000의 이진 값은 1111101000 입니다.
Doktoro Reichard

독 토로, 바이너리 시스템 또는베이스 2에서 작업하고 있다는 사실을 기억하십시오. 사실 당신은 틀린 사람입니다. 다음은 이진수 (기본 2)에서 2의 처음 10의 거듭 제곱입니다. 2 ^ 0 = 1. 2 ^ 1 = 2. 2 ^ 3 = 4. 2 ^ 4 = 8. 2 ^ 5 = 16. 2 ^ 6 = 64 2 ^ 7 = 128. 2 ^ 8 = 256. 2 ^ 9 = 512. 2 ^ 10 = 1024. 답은 지수이며, 지수를 1 씩 증가시킬 때마다 두 배가됩니다. 이진 2 (이진 2 ... 10이 아닌 10)를 양의 정수로 올려서 000을 만들 수 있습니다. 나는 다운 투표를 모두 동일하게 고맙게 생각합니다.
user3005790

이것은 비트와 바이트의 차이점을 설명하지 않습니다. 실제로 "하드 빠른 규칙"이 있습니다. 1 Kb는 1000 비트입니다. 1KB는 1,000 바이트입니다. 큰 차이가 있습니다. 8Kb는 1KB입니다.
Ramhound

3
이 문장은 정확하지만 여전히 부동 소수점 산술을 수행 할 필요는 없습니다. 당신은 또한 이해할 수 있도록, 2의 힘을 이해할 수 1111101000 = 2 ^ 9 + 2 ^ 8 + 2 ^ (7) + 2 ^ 6 + 2 ^ 5 + 2 ^ 3 = 1000
Doktoro Reichard

1
"정확한 숫자를 의미하는 것은 아니며 기본 10 개 숫자의 이진 근사법" 이라고 생각하지 않습니다 . 필자는 1과 0을 저장하는 것으로 제한된 하드웨어와 이진 레지스터를 사용한 하드웨어 주소 지정의 결과라고 생각합니다. 둘 다 염기 2이고; 기본 10 계산과 전혀 관련이 없습니다. 또한 계산에 대한 요점을 알지 못합니다. 컴퓨터 출력이 실제로 1000을 표시하려는 경우 1024를 표시하거나 내부적으로 1024를 표시하는 경우 1000을 표시하는 것과는 다릅니다. 어떤 계산을 참조하고 있습니까?
Arjan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.