K = 1024의 기원은 무엇입니까? [닫은]


73

킬로바이트 단위의 바이트 수가 불일치하는 이유는 무엇입니까? 어떤 곳에서는 숫자 1024 (2 10 )를 보았지만 다른 곳에서는 1000입니다 (M, G, T 등으로 차이가 커짐).

이것은 1024 또는 1000이어야하는지에 대한 논의가 아니지만 (주석에서 의견을 논의 할 수는 있지만)이 상황이 어디서 시작되고 언제 확산되었는지에 대한 논의입니다.

내가 아는 한 Linux 및 하드웨어 제조업체는 1024 변형을 사용하지 않습니다. 그리고 MS-DOS가이 버전을 공통으로 만들었다 고 생각하지만 사실은 무엇입니까?


23
한 표현은 이진수 (2 ^ 10 또는 1024)이고 다른 표현은 십진수 (10 ^ 3 또는 1000)입니다.
Trezoid

13
비난 할 특정 사람들을 찾고 있다면 하드 드라이브 제조업체를 찾으십시오. 십진수 MB, GB 등으로 표현할 때 더 많은 용량을 가진 장치처럼 보입니다. 그들은 항상 이것을 믿었지만 항상 최근까지 십진수와 이진 사이의 간격이 충분히 커지는 것은 아닙니다. 중요하게.
LawrenceC

23
@ultrasawblade : 용어를 gigabyte올바르게 사용하는 유일한 그룹 중 하나 인 HDD 제조업체를 비난하고 싶 습니까?
paradroid

13
20GB 이전의 컴퓨터와 관련하여 드라이브가 일반적이 된 1K = 1024 인 것으로 항상 이해되었습니다. 이는 많은 비 기술적 인 사람들이 정기적으로 PC를 사용하기 시작한 시간과 거의 일치합니다. 90 년대 초반 이전의 방대한 양의 컴퓨터 문헌 (기술적 및 비 기술적)에는 "소수"KB 또는 "kibibytes"에 대한 언급이 없습니다.
LawrenceC

13
@ paradroid : 기가 바이트는 원래 1024mb (및 mb = 1024kb 등)를 의미했습니다. HDD 제조업체가 잘못된 사용을 주장했기 때문에 1000을 의미하는 것으로 다시 정했습니다. 물론, 이것은 킬로가 1000을 의미하기 때문에 "올바른"것으로 간주하는 것에 달려 있지만, 컴퓨터 과학 내에서 1999 년에 변경 될 때까지 기술적 인 이유로 킬로바이트는 항상 1024였습니다.
James

답변:


63

꽤 오랜 시간이지나 여기자세히 설명되어 있습니다 . 누구든지 IBM을 비난 할 수있는 것 같습니다.

그것에 대해 좀 더 생각 해본 결과, 나는 미국 사람들을 Système International d' unités에 대한 무시 무시한 무시로 인해 비난 할 것이다 .


31
미국인을 비난하는 것은 언제나 쉬운 일입니다.
Notinlist

13
@Notinlist : 농담입니다.
paradroid

5
그것은 "펄프 픽션"영화의 서사적 장면을 떠올리게합니다. "메트릭 시스템"에 대한 의문이있는 영화입니다. :-)
Pierre Watelet

7
@Notinlist 미국인을 항상 비난하는 것은 쉽습니다. 그래서 우리는 그렇게 많이합니다. 그 재미와 사실.
싱글 톤

3
"61k"항목은 "65k"를 언급한다는 점에서 흥미 롭습니다. "k = 1024"와 "k = 1000, 반올림"사이의 분명한 차이를 보여줄 수있는 첫 번째 차수는 후자에 대해 명확하게 내려갑니다. 반면 1964 년에는 모든 사람이 이진 의미를 사용하고 있습니다.
Random832

26

모든 컴퓨팅은 처음에는 저수준이었습니다. 그리고 낮은 수준의 프로그래밍에서 숫자 "1000"은 완전히 쓸모가 없으며 더 많은 양의 접두사가 필요하므로 SI를 재사용했습니다. 모두가 현장에서 그것을 알고 혼란이 없었습니다. 그것은 30 년 동안 잘 아는 사람이었습니다.

그들이 미국인이기 때문에 모든 비용으로 SI를 깨뜨릴 필요가 없었습니다. :-)

내가 아는 키비 바이트 프로그래머는 없습니다. 킬로바이트라고하며 1024 바이트를 의미합니다. 알고리즘은 2의 거듭 제곱으로 가득 차 있습니다. 오늘날에도 "1000"은 프로그래머들 사이에서 정말 쓸모없는 숫자입니다.

kibi와 mibi를 말하는 것은 너무 재미 있고 주제에서 관심을 끌고 있습니다. 우리는 행복하게 그것을 통신 및 디스크 스토리지 부문에 제공합니다 :-). 프로그래머가 아닌 사용자가 읽을 수있는 사용자 인터페이스에 키비 바이트를 작성합니다.


3
비트에 대해 이야기 할 때 말하는 것이 더 재밌습니다 – "mibibit"
James

3
나는 KiB 등이 kibibyte가 아닌 kilobinarybyte 등으로 발음되어야한다고 생각합니다.
Lie Ryan

2
@Lie Ryan은 "kilobinarybyte"와 같은 접두사를 사용하여 궁극적으로 실패한 제안으로, kibibyte와는 다른 약어를 사용했습니다. 참조 en.wikipedia.org/wiki/Binary_prefix
벤 리

3
km를 kilodecimalmeters로 발음하는 것이 공정한가요?
JustJeff

3
숫자 1000은 "완전히 쓸모가 없습니다". "k = 1000"은 1950 년대부터 컴퓨팅에 사용되었습니다. 첫 번째 컴퓨터는 실제로 이진이 아니라 십진법이었습니다. 네트워킹 속도는 항상 1000의 배수로 측정되었습니다. "30 년 동안 잘 작동했습니다"? 정말? 프로그래머들은 최소 43 년 동안 "k = 1024"에 대해 불평 해 왔습니다. en.wikipedia.org/wiki/Timeline_of_binary_prefixes
endolith

8

대부분의 경우 기술 담당자가 1024 = 1K를 사용하는 것이 정확하고 의미가 있습니다.

최종 사용자의 경우 모든 사람이 10 기반 숫자 시스템에 익숙하기 때문에 일반적으로 1000 = 1k라고 말하는 것이 좋습니다.

문제는 선을 그릴 위치입니다. 때때로 마케팅 또는 광고 담당자는 "번역"또는 기술 데이터 및 언어를 최종 사용자에게 적용하는 데 실제로 성공하지 못합니다.


13
기술 담당자는 1024 바이트가 실제로 Kiibyte (KiB)라는 사실을 알고 있어야하지만 기술이 아닌 사람 은이 용어를 알 수 없습니다 .
paradroid

8
누가 맞습니까? 킬로는 수 세기 동안 1000 년을 의미했기 때문에 IMO는 1024
Bart van Heukelom

20
바이트는 SI 단위가 아닙니다. KB는 "kilobel"을 의미합니다. (빅뱅이 제작 한 사운드를 묘사하지 않는 한 사용하지 않으려는 유닛입니다.)
Wooble

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

5
kiB 등 변형은 상당히 새롭습니다. 나는 그들이이 문제가 생겼을 때 그들이 사용하고 있다고 생각하지 않는다-나는 그들이 그것을 해결하기 위해 정확하게 만들어 졌다는 인상 아래 있었다!
Shinrai

3

Blame 반도체 제조업체 (이진 하드웨어 만 제공) [1]

더 나은 아직 : 논리 자체를 비난하십시오 (이진 논리는 가장 기본적인 논리입니다).

더 나은 아직 : 우리는 비참한 십진법을 누구의 책임이 있습니까?

바이너리 시스템보다 훨씬 많은 결함이 있습니다. 기침 은 인간 종 기침 의 평균 손가락 수를 기준 으로합니다.

우우 ...

[1] 양자 3 큐빗 컴퓨터를 원합니다 !!! 지금!


29
난 당신이 손가락의 평균 수는 찾을 생각보다 10 </ 부유>
로리 알솝

1
@Rory : ^ 그것은 좋은 웃음이었다
Mehrdad

2
@Rory : "더 적게"</ ​​pedant>. 아니면? 잠깐만 요, 아아 ..
외부 폭발

1

1024는 컴퓨터 (디지털)가 오늘날처럼 빠르고 효율적일 수 있기 때문에 실제로 매우 좋은 일이라고 비난해서는 안됩니다. 컴퓨터는 2 값 (0,1) 만 사용하기 때문에 방정식에서 anolog 시스템의 어려움과 복잡성 (정확도)을 제거합니다.

킬로바이트가 1000 비트라고 말하면 2보다 1000이 크므로 더 복잡할까요? 따라서 1 킬로바이트라도 부동 소수점 또는 근사값을 가지므로 부정확합니다.

그러나 나는 8 기가 바이트를 팔고 이것을 작은 글씨로 추가하는 마케팅을 크게 비난합니다.

* 1 gigabyte is 1,000,000,000 bytes. 

그것은 정말 수치스러운 일입니다. 연결 속도와 같은 것입니다. ISP는 ~ 150 킬로바이트 대신 1.5Mbps라고 말합니다. 그것은 단지 오해의 소지가 있습니다


3
15682 비트의 파일이 얼마나 큰지 또는 그러한 파일이 네트워크를 통해 얼마나 빨리 전송 될 수 있는지 말하면, 2의 거듭 제곱은 아무런 역할을하지 않습니다. 그것이 가장 혼란스러운 상황입니다.
바트 반 Heukelom

2
궁극적으로 파일은 이진 전력 경계에 맞춰 메모리 페이지에 저장됩니다. TCP를 통해 전송할 때 패킷이 전송되는 창 크기는 2의 배수입니다. 파일이 하드 드라이브에 저장되면 2의 거듭 제곱 블록에 저장됩니다. 나는 당신이 말하는 것을 이해하지만 킬로 바이트 = 1024 (또는 적어도 2의 거듭 제곱)는 너무 많은 계산에 뿌리를두고 있습니다.
FryGuy

1
공정하게 말해서 네트워킹은 항상 비트를 기본으로 사용했습니다.
Synetech

1
첫 번째 5.25 "플로피는 109,375 바이트를 보유하고"109.4KB "로 광고되었습니다. 악의적 인 마케팅 이유로이 작업을 수행 한 것 같습니다."106.8KB "로 작성하는 것이 더 논리적이라고 생각하십니까? 그리고 테이프 드라이브 및 프로세서 우리를 속이려고 속도와 모뎀 속도는 모두 10 진수로 측정됩니까?
endolith

1
@Ibu : 1,000,000,000 바이트와 1GB의 차이는 0입니다. 실제로, 플로피 제조업체가 그 차이가 너무 작을 때 악의적으로 숫자를 늘리는 이유는 무엇입니까? 그들은하지 않았다. 1000 년대는 논리적이고 명백하며 정확하기 때문에 1000 대를 사용했습니다. 왜냐하면 고객을 속이는 음모의 일부가 아니기 때문입니다. 하드 드라이브 제조업체들도 같은 이유로 MB 년 이후 1000 년대를 측정 해 왔습니다.
endolith

0

컴퓨터의 숫자가 이진수이고 2 ^ 10이 1024라고 생각하면 완벽하게 이해됩니다. 정수 수학 및 비트 이동 만 사용하여 1024로 쉽게 나눌 수 있기 때문에 1000이 아니라 1024로 작업하는 것이 훨씬 쉽습니다 . 1000으로 나누는 것은 훨씬 더 비싼 연산이므로 부동 소수점 연산이 필요할 수 있습니다.

예 :

bytes = 1 073 741 824
kilobytes = bytes >> 10 = 1 048 576
megabytes = kilobytes >> 10 = 1024
gigabytes = megabytes >> 10 = 1

계산 시간이 적절하다고 생각하십니까? 컴퓨터가 "km"를 "1024 m"로 처리하지 않는 이유는 무엇입니까?
endolith

@endolith 예, 적어도 역사적으로는 그렇게 생각합니다. 오늘날에는 무시할 만하지 만 모든 CPU 사이클이 프리미엄이었던 초기에는 이와 같은 것에 대해 적절한 대답을 한 빠르고 쉬운 계산이 바람직합니다. 특히 사람들이 1KB가 1024 바이트를 의미한다는 것을 규칙으로 알고 있다면.
Jo-Herman Haugholt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.