Rozmiary plików w systemie Windows nie mają sensu

18

Tutaj mam ten plik w systemie Windows:

wprowadź opis zdjęcia tutaj

Ale czy 62,563 bajtów nie ma 62,6 KB?

wprowadź opis zdjęcia tutaj

Kirk Ouimet
źródło
24
Zobacz XKCD # 394
Nick T
11
Mac używa kilobajtów dziesiętnych (standard IEC), podczas gdy Windows nadal używa kilobajtów binarnych (od zmiany nazwy na kibibajty), Linux zwykle odnosi się do KiB (binarne kilobajty). Osobiście uważam, że to wszystko jest zepsute. Nie kupuje się pamięci RAM z 1 000 000 000 bajtów, ale zamiast tego kupuje pamięć RAM z 1 073 741 824 bajtami. Ale kiedy kupujesz dysk twardy, kupujesz go z 500 000 000 000 bajtów, nawet jeśli sektory są przydzielone w wielokrotności 512 bajtów. Podobały mi się moje kilobajty, gdy były binarne ...
phyrfox
1
@phyrfox: 1 MHz procesora to 1 milion cykli, a nie 1 073 741 824 cykli. 1 Mbps ruchu sieciowego to także 1 milion bitów.
Zan Lynx
3
@ZanLynx Mega nie ma 1 miliona, jest zaadaptowany „świetnie” z greckiego. Poza tym przedrostki SI mają sens tylko w przypadku jednostek fizycznych. Ale bajty i bity nie są jednostkami fizycznymi. Ponadto, ponieważ prefiksy SI są znormalizowane, istnieje również standard dotyczący wielkości pamięci, który definiuje znaczenie kilo, mega i giga jako odpowiednio 1024, 1048576 i 1073741824.
Ruslan

Odpowiedzi:

53

62 563 bajtów to 61,0966797 kibibajtów . W KIBI oznacza prefiks podstawą obliczeń jest 1024, bi odstaniu „Binary”, ponieważ 2 ^ 10 = 1024 . To tylko jeden z prefiksów binarnych , inne to mebi lub gibi .

Z drugiej strony kilobajt to 1000 bajtów, przy użyciu klasycznych prefiksów SI, które znasz z kilometrów i kilogramów. Używa podstawy dziesiętnej, 10 ^ 3 = 1000 , więc Google ma rację . Gdybyś szukał tej samej ilości w kibibajtach, uzyskałbyś właściwą odpowiedź w terminologii komputerowej.

Naprawdę ważne jest, aby w dzisiejszych czasach rozróżniać kilogram od kibi, a tak naprawdę Windows powinien zgłaszać to jako „61 KiB”, aby być absolutnie dokładnym. Jest to konwencja IEC ułatwiająca rozróżnienie.

Biorąc to pod uwagę, w dzisiejszych czasach nadal istnieje wiele niejednoznaczności, w których rozmiary dysków twardych są zwykle zgłaszane w jednostkach binarnych (ale nie zawsze jawnie), a prędkości połączeń są podawane w jednostkach SI.

slhck
źródło
1
@Joker_vD: Na szczęście tak ;-) kilogram i mega (i wszelkie inne przedrostki byłoby pójść) to czynniki, a nie tylko ilości własnych, więc korzystanie tylko K i M (i G i T i P itd.) Byłaby zupełnie bezcelowe. (To samo dotyczy oczywiście prefiksów kibi , mebi itp.). Co więcej, wszystkie powszechnie używane jednostki są całkiem wolne od dwuznaczności, ponieważ żaden skrót nie jest używany dwukrotnie, ale K na pierwszy rzut oka wygląda tak samo jak K dla Kelvina .
LUB Mapper
1
@ORMapper Tak, a T będzie mylony z Teslą . Ponieważ oczywiście podręczniki programisty często omawiają podstawy fizyki.
Joker_vD,
1
@Joker_vD: To, czy fizyka może się pojawić, jest nieistotne. Chodzi o to, że znaki jednostek K i T nie byłyby już jednoznaczne bez żadnego kontekstu - tworząc w ten sposób niezaprzeczalną wadę w porównaniu z unikalnym odwzorowaniem między znakami jednostek i jednostkami - co sprawia, że ​​taka konwencja jest wysoce niepożądana.
LUB Mapper
1
Kto poza niszą świata komputerowego wie, czym jest „kibibajt”? Nawiasem mówiąc, dopiero niedawno Google miało „rację”. To wciąż bardzo żywa debata na temat tego, czy kilobajt ma 1000 czy 1024 bajty.
Justin Krejcha,
9
Czy jestem jedyną osobą, która jest trochę zdenerwowana, że ​​liczba ta zostaje obcięta do 61,0, a nie zaokrąglona do 61,1?
Christofer Ohlsson,
22

Tak, pomyśl o Google jako Szalonym Kapeluszniku. Musisz zadać właściwe pytanie. A może Elf: Czasami twoja odpowiedź będzie zarówno tak, jak i nie.

bajt do KiB.  Kilobajt komputera;  lub kibibajt.

Iraedei
źródło
5

1 KB = 1024 bajty. A zatem:

62563 / 1024 = 61.097KB

Jako skrót wiele osób i systemów traktuje KB jako 1000, ponieważ Kilo jest prefiksem SI dla 1000. Informatycy używają jednak prefiksu dla 2 ^ 10, czyli 1024.

EBGreen
źródło
3

Większość liczb związanych z komputerami używa prefiksów binarnych, w przeciwieństwie do systemu SI, który używa prefiksów dziesiętnych. To znaczy, że:

  • 1 kilogram = 10 3 gramów, ale
  • 1 kilobajt = 2 10 bajtów

To odpowiednio 1000 gramów i 1024 bajty. 62563 / 1024 ~= 61, więc Windows ma rację.

Jednak nie wszystko, co dotyczy komputera, opiera się na prefiksach binarnych, a ta niekonsekwencja często prowadzi do nieporozumień. Ta strona Wikipedii opisuje, jakie prefiksy są używane do pomiaru różnych rzeczy.

Jednym skrajnym przypadkiem jest przepustowość. Zazwyczaj używa prefiksów binarnych wyrażonych w bajtach na sekundę, a prefiksów dziesiętnych wyrażanych w bitach na sekundę. To zdanie jest prawdziwe:

1 bajt na sekundę = 8 bitów na sekundę

Ale ten jest fałszywy:

1 kilobajt na sekundę = 8 kilobitów na sekundę

Bo:

  • 1 KB / s = 1024 B / s
  • 1 Kbps = 1000 bps

( powiązane pytanie )

gronostaj
źródło
1
Błąd: 2 ^ 8 = 256 ---> Przypuszczam, że powinno być 2 ^ 10 ;-)
Hannu
Strona dyskusji WP jest znacznie bardziej interesująca niż sam artykuł (bardzo gigantyczna debata na temat tego, czy KB ma 1024, czy 1000 bajtów).
Justin Krejcha,
Przepustowość jest odpowiednio wyrażona w Hz, gdzie przedrostki SI używają potęgi-10. Powód przepustowości (szybkość przesyłania danych, równoważnie przepustowość pomnożona przez wydajność kodowania) jest niejednoznaczny, ponieważ pierwsza definicja prowadzi do tego (KB)/s, gdzie KB używa prefiksu binarnego, a druga opiera się na kHz lub kbaud, stosując dziesiętne prefiks.
Ben Voigt