Czy powinienem uczyć, że 1 kB = 1024 bajty czy 1000 bajtów?

Jakiej konwersji powinienem uczyć moich studentów? To, że 1 kB to 1024 bajty (binarne), czego wszyscy dowiedzieli się w latach dziewięćdziesiątych, lub niedawna „przyjazna” konwersja, która mówi, że 1 kB to w rzeczywistości 1000 bajtów (dziesiętnie)?

Moje bezpośrednie odczucie idzie w kierunku konwersji binarnej, ale kiedy IEC mówi inaczej , a główne systemy operacyjne decydują o konwersji dziesiętnej (Mac OS X ≥ 10.6 i Ubuntu ≥ 10.10 używają teraz przedrostków SI wyłącznie w odniesieniu do potęg 1000) Nie jestem już taki pewien.

Komentarze

  • Proszę zauważyć, że przedrostek SI ” kilo ” jest zawsze zapisywane małymi literami ” k „. Osobiście jestem przyzwyczajony do oglądania ” kB „, nawet jeśli nie jest to ściśle ' ta przedrostek SI.
  • xkcd
  • Ram jest podzielony na kiB, Mib, GiB i dyski twarde w kB, MB, GB. Oba często oznaczane jako kB, M B, GB. Więc nie zawsze chodzi o programowanie.
  • To, co uważam za zabawne, to fakt, że wersja typu power-of-two (ta, która ' jest tym, co jest zwykle pożądane ) nie ma żadnego uzasadnienia dla użycia prefiksu ” Kilo ” – to ' polega tylko na tym, że jakaś arbitralna potęga dwójki zbliża się do pewnej arbitralnej potęgi 10, więc ignorujemy różnicę dla wygody, jaką jest możliwość powiedzenia ” K ” (lub ” M ” lub ” G „), ponieważ ” 0x0200 ” abyte jest zbyt trudne do powiedzenia.
  • Byte nie jest jednostką SI. Jednostką SI określającą ilość jest mol. 1 GB to około 1,66 femtomole bajtów

Odpowiedź

Powinieneś uczyć obu i prawdopodobnie chcesz użyć jednostka binarna. Kiedy mówisz o różnicy, pomocne może być powiedzenie im, jak odróżnić różnicę podczas ich czytania:

Kilogram w układzie SI to k :
$ 1 \ \ text {kB (kilobajt)} = 10 ^ {3} \ \ text {bytes} = 1000 \ \ text {bajtów} $

Podczas gdy binarne kibi to Ki :
$ 1 \ \ text {KiB (kibibyte)} = 2 ^ {10} \ \ text {bytes} = 1024 \ \ text {bytes} $

Zauważyłem, że użyłeś KB w swoim pytaniu, aby odnieść się do obu rozmiarów; być może powinieneś również zwrócić uwagę, że KB może być interpretowane jako jeden z tych przedrostków (chociaż Wikipedia sugeruje , że jest on najczęściej używany zamiast KiB). Jeśli chodzi o twoje stanowisko, sugerowałbym wyjaśnienie, który z nich masz na myśli, używając tego zapisu.

(Podczas gdy przeglądasz mylące jednostki, powiązana różnica w zapisywaniu jednostek jest taka, że małe b to bity, duże B to bajty; ośmiokrotna różnica jest znacznie większa niż 2,4%.)

Komentarze

  • Oprócz uczenia obu, musisz nauczyć, że k / kilogram może oznaczać albo w zależności od kontekstu / kto ' korzysta z niego. Tylko dlatego, że karma istnieje, nie ' t znaczy, że ludzie go lubią lub faktycznie go używają.
  • Jeśli zajmujesz się bitami i bajtami, powinieneś też przynajmniej krótko wspomnieć, że ” kilobit ma prawie zawsze 1000 bitów (ponieważ sieć), a ” kilobajt ” ma prawie zawsze 1024 bajty (ponieważ wszystko -z wyjątkiem-sieci).
  • 1 MiB jest ≈5% większy niż 1 MB, 1 GB jest o 7,4% większy niż 1 GB, a 1 TiB jest prawie y 10% większe niż 1 TB.
  • Zawsze uczono mnie, że podstawa jest binarna, 8-bitowe słowo to bajt, 16-bitowe słowo to dwa bajty, a zgodnie z konwencją binarną 1 KB to 1024 bajty , 1 MB to 1024 KB, 1 GB to 1024 MB, 1 TB to 1024 GB – a w postaci binarnej, podstawowej jednostki obliczeniowej, ma to sens. Zawsze uważałem, że próba przyjęcia użycia SI jest niepoprawnym i niepotrzebnym zamieszaniem. To powiedziawszy, jako nauczyciel, uczeń będzie musiał zrozumieć zamieszanie.
  • ” Czy powinienem uczyć, że 1 KB = 1024 bajty czy 1000 bajtów ? ” Tak. 🙂

Odpowiedź

Powinieneś ich nauczyć, że jest to pomieszane nie do naprawienia , a zadaniem ich pokolenia jest nauczenie następna generacja będzie używać głupio brzmiących standardowych prefiksów , tak że kiedy w końcu przejdą na emeryturę (a obecni staruszkowie zostaną trwale usunięci z argumentu) w końcu może być konsensus.

W obecnym stanie rzeczy wszystkie przedrostki są niepoznawalne bez kontekstu.Megabajt sieciowy to 10 ^ 6 $ bitów, megabajt systemu plików to 2 ^ {20} bajtów $, megabajt dysku twardego to prawie 10 ^ 6 $ bajtów, a megapiksel to „prawdopodobnie milion pikseli, kogo to obchodzi. „

Komentarze

  • Konsensus wydaje się być taki, że rozmiar dysku jest najbliższym prostym przybliżeniem mniejszym niż n × 1000 ^ m. Zatem 2,057 × 10 ^ 12 bajtów byłoby reklamowane jako 2 TB, a nie 2,1 TB.
  • I ' d zwróć uwagę, że przedrostki rzadko (w zasadzie nigdy) mają znaczenie binarne w przypadku jednostek innych niż bajty . Megapiksel to 1 milion pikseli, megabit to milion bitów.
  • Megabajt systemu plików to 2 $ ^ {20} bajtów – być może. Czasami w tym samym systemie operacyjnym ' zobaczysz ” megabajty ” (w tym dokładność dziesiętna) wynoszący 10 ^ 6 $ w niektórych narzędziach i 2 ^ {20} $ w innych. Najczęściej w narzędziach wiersza poleceń w porównaniu z narzędziami GUI, ale znam system operacyjny, w którym nawet różne narzędzia GUI dostarczane przez system operacyjny nie zgadzają się z tym …

Odpowiedź

Właściwie musisz nauczyć ich obu, aby otrzymali ostrzeżenie, że użycie nie jest spójne. Następnie możesz wybrać jeden jako standard w swoim przyszłym kursie.

Wybór zależy w pewnym stopniu od tego, czego uczysz. Jeśli tak jest, jak ocenić dyski twarde itp., To $ K = 1000 $ działa teraz. Jednak w przypadku większości programów prawdopodobnie najlepsze jest K = 2 ^ {10} = 1024 $.

Niestety, podwójne znaczenie jest prawdopodobnie spowodowane tym, że producenci próbują uniknąć zamieszania w umysłach nieskomplikowanych klientów.

Komentarze

  • Kilobajt powstał na długo przed 1000-bajtowym kilobajtem w 1998 roku. IEC naprawdę narobił bałaganu.
  • Tak, ale kilo = 1000 wraca do roku 1795: etymonline.com/word/kilo- Więc być może nie-maniacy mają tutaj pierwszeństwo. Ale co ważniejsze: jeśli nauczysz ich tylko jednej rzeczy jako ” poprawnej rzeczy „, później wprowadzisz ich w błąd. Świat jest chaotyczny. Nauczyciele nie powinni ' udawać, że tak nie jest ' t. Dogmatyka nie jest ' bardzo pomocna.
  • Również kB / KB nie ' nie pomaga z MB, GB, TB, które a) są o wiele bardziej istotne b) mają znacznie większe różnice.
  • ” Niestety, podwójne znaczenia są prawdopodobnie spowodowane tym, że producenci próbują uniknąć nieporozumień w umysły nieskomplikowanych klientów ” Bardziej prawdopodobne jest, że reklamodawcy chcą, aby ich produkt brzmiał głośniej niż w rzeczywistości. Po co reklamować dysk twardy o pojemności 3 TB, używając prawidłowego 1 TB = 1024 * 1024 * 1024 * 1024 bajtów, skoro można reklamować dysk twardy 3,3 TB przy użyciu zatwierdzonego przez prawnika 1 TB = 1000 * 1000 * 1000 * 1000 bajtów. 3.3 jest większe niż 3, prawda?
  • @Readin Lub, jak widzę częściej, dysk o pojemności 3 TB, który w rzeczywistości ma 2,7 TB całkowitej pamięci.

Odpowiedź

Różnica między zapewnieniem uczniom właściwej dyskusji na ten temat a po prostu nauczeniem ich jednego lub drugiego jest różnica między byciem prawdziwym pedagogiem a byciem recytatorem faktoidów.

Jeśli nie ma dla ciebie jednej poprawnej definicji KB, to dlaczego zaszczepiłbyś coś innego swoim uczniom? Odpowiedź na twoje pytanie jest zatem oczywista w jego sformułowaniu. Twoim obowiązkiem jako nauczyciela jest przekazanie zrozumienia problemu, a nie sprowadzanie go do jednego lub drugiego faktu, o którym wiesz, że jest mniej niż prawdziwy.

Komentarze

  • Zgadzam się, ale przed przeprowadzeniem właściwej dyskusji z moimi uczniami ' zapewniam tutaj odpowiednią dyskusję, która była moim pierwszym zamiarem ( zamiast prostych jednej lub drugiej odpowiedzi).

Odpowiedź

Tak Zgadzam się z innymi odpowiedziami, uczę obu, a także zauważam podobieństwo.

Różnica

  • $ \ text {ki} = 1024 = 2 ^ {10} $
  • $ \ text {k} = 1000 = 10 ^ 3 $
  • $ \ text {k}, \ text {M}, \ text {G}, \ text {T}, \ text {P} $ jest czasami używane w znaczeniu $ \ text {ki}, \ text {Mi}, \ text {Gi}, \ text {Ti}, \ text {Pi} $

Podobieństwo

  • $ 1 = \ text {k} ^ 0 $ i $ 1 = \ text {ki} ^ 0 $
  • $ \ text {k} = \ text {k} ^ 1 $ i $ \ text {ki} = \ text {ki} ^ 1 $
  • $ \ text {M} = \ text {k } ^ 2 $ i $ \ text {Mi} = \ text {ki} ^ 2 $
  • $ \ text {G} = \ text {k} ^ 3 $ i $ \ text {Gi} = \ text {ki} ^ 3 $
  • $ \ text {T} = \ tex t {k} ^ 4 $ i $ \ text {Ti} = \ text {ki} ^ 4 $
  • $ \ text {P} = \ text {k} ^ 5 $ i $ \ text {Pi} = \ text {ki} ^ 5 $
  • $ \ text {E} = \ text {k} ^ 6 $ i $ \ text {Ei} = \ text {ki} ^ 6 $

Szybka matematyka

64 $ \ text {bits} = (6 \ times 10 + 4) \ text {bits} = \ text {ki} ^ 6 \ times 2 ^ {4} = 16 \ text {adresy Ei} $

Ma to pewne podobieństwo i pewną różnicę w stosunku do systemu o podstawie 10, którą (powinni) znać. Najpierw dzielimy go na bloki po 10 (zamiast 3), resztę po prostu konwertujemy na podstawę 10, reszta jest taka sama.

Gdzie używane (głównie)

To jest ważne, aby pokazać, gdzie są używane te 2 systemy. Podczas gdy niektóre odpowiedzi mówią, że nigdy nie widzieli systemu SI opartego na 1000 $ używanego w komputerach. Okazuje się, że system SI jest używany często, w zależności od tego, co jest mierzone.

  • IEC 60027-2 A.2 i ISO / IEC 80000 np. $ \ text {ki} $ :
    • miary pamięci podstawowej: RAM, RAM, cache.
    • miara rozmiarów plików , rozmiary partycji i rozmiary dysków w systemie operacyjnym.
  • Jednostki SI, np $ \ text {k} $ :
    • miary urządzeń pamięci dodatkowej: dyski twarde, dyski SSD.
    • prędkości sieci.
    • Prędkości procesora / pamięci / magistrali.
    • wszystkie inne szybkości.

Jednak użycie symbolu $ \ text {ki} $ nie jest obecnie używany zawsze.


zobacz także https://en.wikipedia.org/wiki/Binary_prefix

Komentarze

  • Ta odpowiedź nasuwa pytanie.
  • @prl Jeśli masz na myśli uniknięcie pytania (odpowiadając na inne pytanie), to częściowo masz rację. Próbuję rozwinąć inne odpowiedzi. I aby udzielić porady „Jak”, gdzie pytanie brzmiało „Które”.
  • IMO to najlepsza odpowiedź, ale można ją nieco poprawić, wyraźnie wspominając o stylu . To znaczy. tak samo, jak istnieją różne style cytowania artykułów lub rozdzielania list (patrz przecinek oksfordzki), istnieją różne style formatowania liczb. W publikacji IEC po 2000 r. Można założyć, że stylem domu będzie SI / * bi. Inne organizacje / wydawcy mogą używać innych stylów.
  • Całkiem dobra odpowiedź. Dwie dziury: 0) Dla wszystkich przedrostków (k, M, Mi, Gi itp.) Użyj czcionki łacińskiej, a nie kursywy; Sugeruję użycie \text{}. 1) Ki musi mieć duże K.
  • @Nayuki „Pierwsza litera każdego takiego przedrostka jest zatem identyczna z odpowiadającymi mu przedrostkami SI, z wyjątkiem ” K „, które jest używane zamiennie z ” k „, podczas gdy w SI tylko mała litera k oznacza 1000. ” – en.wikipedia.org/wiki/Binary_prefix

Odpowiedź

Pracuję zawodowo w IT od połowy lat 80-tych XX wieku. Obecnie zajmuję się pisaniem tego, na przykład KB lub KiB, które mam na myśli w tamtym czasie, gdzie KB oznacza 10 dolarów ^ 3 $ i KiB oznacza 2 $ ^ {10} $. Jeśli mówię o pamięci RAM w maszynie, napiszę np. „64MiB”, a jeśli mam na myśli rozmiar w stanie fabrycznym i rynkowym napiszę „napiszę” 1 TB. „Nie jestem jednak nie przygotowany na używanie w rozmowie słów typu” mebibajt „. Może któregoś dnia zmienię skróty słowne z np. „meg” na „meb”, ale „mnie tam jeszcze nie ma”.

Komentarze

  • I ' Nigdy nie widziałem, w podobnym przedziale czasowym, MiB itp. używany jako RAM. KB / MB / GB / TB, jeśli chodzi o pamięć RAM, zawsze ma wartość 1024.
  • Jeśli ' używasz wielkich liter K dla kilogramów , ' się mylisz.(Widziałem ludzi mieszających milimetr z megamolem.)
  • Myślę, że ' d wcześniej powiedz / napisz ” megabajt binarny ” dla MiB niż ” mebibyte „, ale skrót będzie OK .
  • @MontyHarder: Z punktu widzenia wymowy, co z em-byte?
  • @supercat ” em-byte brzmi jak skrót od megabajta. Dlatego nie ' nie rozwiązuje niejednoznaczności tak, jak robi to MiB. Uważam, że MiB to przydatny skrót (infiks ” i ” reprezentuje ” b_i_nary „), ale samo słowo ” mebibyte ” nie wychodzi z moich ust, jeśli w ogóle.

Odpowiedź

Podstawowe zamieszanie dotyczy notacji w KB (wyprowadzona z podstawy 2) vs kB (jednostka SI), i warto zrozumieć pochodzenie zastosowania jednostki pochodnej o podstawie 2.

Komputer jest maszyną binarną.

Na początku poziom podstawowy, adresowanie pamięci jest binarne. Zwykle na poziomie programistycznym adresowanie jest wprowadzane w formacie szesnastkowym (pierwotnie było binarne); jednak szesnastkowy jest również wyprowadzany z podstawy 2 (jest to podstawa 16 lub 2 4 ), a więc jest bezpośrednio zgodny.

Rozpoczęcie od poziomu KB do komunikowania zrozumienia jest przydatne, ponieważ koncepcje jednostek pochodnych o podstawie 2 istniały zanim MB był w powszechnym użyciu (brak rozróżnienia w prefiksie od jednostki SI).

Na kontrolerze pamięci IC, jeśli wyobrażasz sobie, że selektory adresów są rzędami przełączników (bramki logiczne binarne) iw zależności od tego, jak są przełączane, otrzymujesz pamięć odczytaną z określonego adresu na liniach danych. Dane są zapisywane i zwracane jako bajty.

Zawsze była ograniczona liczba linii adresowych dostępnych dla pamięci adresowej i zdarza się, że używanie binarnych kompletnych zestawów adresów dla danej liczby bitów adresowania jest podstawa 2 liczby. Tak więc na maszynie o wielkości 4 KB istnieje 12 linii adresu reprezentujących adresy od 0 do 4095 (4096 bajtów). Te 12 wierszy adresu odpowiada adresom 111111111111 możliwym w systemie binarnym, 0FFF w systemie szesnastkowym lub 4096 bajtach w systemie dziesiętnym. Nie byłoby logiczne ograniczenie mapowania adresów do 4000 bajtów ze względu na konwencję dziesiętną, gdy dostępnych jest 12 bitów adresowania.

Logika ta była początkowo stosowana również do dysków twardych, gdzie bloki są grupami bajtów dostępnymi przez adres, jednak (i nie sprawdzałem), słyszę, że być może sprzedawcy dysków twardych uważają, że stosowanie formatów „okrągłego adresowania” jest mniej krytyczne, szczególnie biorąc pod uwagę następujące kwestie.

Wszystkie standardowe wartości w terminologii komputerowej są base 2, chociaż dla celów marketingowych, dysk twardy niektórych producentów o pojemności 20 MB może nie być tak duży, jak niektórzy zachowujący konwencję. Wygodne jest wrzucenie 20 MB na coś, nawet jeśli nie zawiera tak wielu bloków i jest łatwiejsze do wyprodukowania, ponieważ wymagana jest mniejsza gęstość danych.

Wczesne dyski twarde IDE (były inne wcześniejsze systemy przed IDE) , zanim wprowadzono system Logical Block Addressing (LBA), konfigurowany był przez cylindry, głowice i sektory (CHS). Cały system adresowania był binarny i nawet standardowe narzędzia uniksowe używały 1024-bajtowych bloków do wyświetlania. [1] Standardowe narzędzia, takie jak Conky nadal używa podstawy 2 do wyświetlania informacji o pamięci RAM i dysku twardym, chociaż używa formatu GiB, aby uniknąć nieporozumień. Później system adresowania LBA pozwolił na logiczne mapowanie formatu CHS wraz ze wzrostem rozmiaru dysku twardego, jednak LBA po prostu stosuje adresowanie formatu CHS wewnętrznie w kontrolerze pokładowym dysku twardego i pozwala systemowi operacyjnemu (i programatorowi) po prostu rozważyć logiczne bloki.

Logika o podstawie 2 prowadzi do większych liczb, na przykład 1111111111111111111111111111111 bajtów to 2 GB w standardowym użyciu lub 7FFFFFFF bajtów w systemie szesnastkowym. Tylko w systemie dziesiętnym wygląda to nieporządnie na 2147 483647 bajtów, ale podstawowa technologia i konwencje nie są dziesiętne. Komputery nie są maszynami dziesiętnymi; są maszynami binarnymi.

Adresowanie sieciowe wykorzystuje również maski binarne na każdym milionie pakietów danych co sekundę, aby zapewnić prawidłowy routing, ale minęło dużo czasu, odkąd część danych pakietu sieciowego przypomina liczbę o podstawie 2. Prawdopodobnie najbardziej zewnętrzna warstwa pakietu nadal ma {przypuszczenie}.

Bez wątpienia trzeba wspomnieć, że istnieje zamieszanie, zwłaszcza jeśli chodzi o wprowadzanie do obrotu produktów o określonym rozmiarze i że istnieją pewne implementacje programowe do wyświetlania wartości za pomocą jednostek SI (nie jest to już bardziej niewygodne lub wolniejsze (w rzeczywistości prawdopodobnie nadal jest wolniejsze, ale na nowoczesnych komputerach nie jest to już zauważalne} dla programistów komputerowych wdrażanie dziesiętnych, szczególnie do wyświetlania), ale nie ma wątpliwości co do korzystania z komputera, że poprawna odpowiedź brzmi podstawowa konwencja 2.

1024 KB to standard JEDEC 100B.01 , co oznacza, że 1 KB to 1024 bajty.

rel:
[1] Wikipedia – Sektor głowicy cylindrów (CHS) https://en.wikipedia.org/wiki/Cylinder-head-sector

To pytanie zostało szczegółowo zbadane.

SuperUser – rozmiar plików w systemie operacyjnym Windows. (Czy to KB czy KB?) – https://superuser.com/questions/938234/size-of-files-in-windows-os-its-kb-or-kb

Większość systemów operacyjnych i Zdecydowana większość urządzeń zajmujących się pamięcią / przechowywaniem używa przedrostków K dla Kilo, aby oznaczać 1024 bajty, więc kiedy dostaję pamięć RAM, która mówi, że jest to moduł 4 GB, wiem, że to 4 Gibi-Bajty (4 * 1024 * 1024 * 1024), a nie gigabajtów (4 * 1000 * 1000 * 1000).


Quora – Gdzie używamy 1 kB = 1000 bajtów, 1 MB = 1000 kB, 1 GB = 1000 MB, 1 TB = 1000 GB? A gdzie używamy 1 KB = 1024 bajty, 1 MB = 1024 KB, 1 GB = 1024 MB, 1 TB = 1024 GB? – https://www.quora.com/Where-do-we-use-1-kB-1000-bytes-1-MB-1000-kB-1-GB-1000-MB-1-TB-1000-GB-And-where-do-we-use-1-KB-1024-bytes-1-MB-1024-KB-1-GB-1024-MB-1-TB-1024-GB

Drugi pomysł został sformułowany przez branżę komputerową 1KB = 1024 bajty 1MB = 1024 KB 1 GB = 1024 MB Uwaga Używam dużego B, a nie małego b, a duże B oznacza bajty Małe b nie powinno być używane. Tak jest zawsze i jest prawdziwe dla rzeczy związanych z komputerami


Pierwsza idea została sformułowana przez branżę telekomunikacyjną i ma zastosowanie nie do rozmiaru danych (bity i bajty), ale do prędkości danych (bity na sekundę lub bajty na sekundę) 1 Kb / s = 1000 b / s (bity na sekundę) 1 Mb / s = 1024 Kb / s 1 Gbps = 1024 Mbps Uwaga Używam małego b, a nie dużego B, a małe b oznacza bity. Duże B nie powinno być używane. Tak jest zawsze i jest prawdziwe dla rzeczy związanych z transmisją danych.

Komentarze

Odpowiedź

Dodaję drugą odpowiedź, aby wyjaśnić pewne kwestie związane z pytaniem i usunąć oczywiste zamieszanie w odpowiedziach.

  1. Pytanie błędnie stwierdza, że w połączonym komunikacie IEC zaleca, aby KB oznaczało 1000. Odnośnik odnosi się tylko do „kilograma”.

  2. kB może oznaczać kilobajt w układzie SI, tj 1000 bajtów

  3. KB oznacza i zawsze oznaczało 1024 bajty.

Numer 3 to w zasadzie jedyna użyteczna definicja w inżynierii oprogramowania. Należy pamiętać, że K jest pisane wielką literą.

Istnieje również KiB, który jest odpowiednikiem KB . Zauważ, że słowo kilogramowe jest zawsze reprezentowane przez małe k. Nauczanie KB jako 1000 zawsze jest błędem OP.

Powyższe nie dotyczy MB i wyższych. Tam użycie jest niejednoznaczne i zależy od kontekstu.

Komentarze

  • Zauważ, że chociaż KB as 1000 może być błędne, to ' jest również konieczne, aby nauczyć, że wiele osób robi to źle, a zatem uczniowie nie mogą nigdy ufać, że KB oznacza 1024 bez dalszej znajomości kontekstu.
  • @Peter Zgoda w 100% Szeroka dyskusja na temat historii i kontekstu w interesujący i zabawny sposób pomogłaby odróżnić przeciętnego od przyzwoitego wykształcenia.
  • W jakim sensie jest numer 3 ” jedyna użyteczna definicja „?
  • @immibis – podobno ” jedyna użyteczna definicja w inżynierii oprogramowania „. Ze względu na binarny charakter architektury komputera i oprogramowania, są one prawdopodobnie ' poprawne. Poza dyskusjami na temat komputerów, a zwłaszcza oprogramowania, najprawdopodobniej nie jest to poprawne.
  • @KevinFegan: Jedyne sytuacje, w których mogę pomyśleć o użyciu dużej litery K zamiast 1000, nie powinny być postrzegane jako po prostu błędne. gdzie mała litera ” k ” jest niedostępna, np. w niektórych sytuacjach związanych z oznaczeniami lub ograniczonymi zestawami znaków.

Odpowiedź

Naucz ich, że bez kontekstu nie wiesz, ponieważ z pewnością są ludzie, którzy będą używać k na oznaczenie 1000 i innych kto użyje k na oznaczenie 1024. To, co jest właściwe , nie ma znaczenia, ponieważ istnieją oba zastosowania.To sprawia, że użycie litery „k” z bajtami jest niejednoznaczne, chyba że osoba, która podała liczbę, również określiła ich znaczenie.

Z tego powodu zalecałbym, abyście nauczali, że podając wartość w bajtach, zawsze używajcie przedrostek IEC , taki jak Ki. 10 kB jest niejednoznaczne, 10 KB nie jest.

Możemy zadeklarować, że pewne zastosowania są „błędne”. chcę, i nie twierdzę, że jest to koniecznie nieuzasadnione, ale to nie oznacza, że te zwyczaje znikną.

Komentarze

  • Niewiele komputery dziesiętne ostatnio, więc Kb w odniesieniu do komputera nie jest ' niejednoznaczne
  • @Neuromancer Czy ' jest niejednoznaczne lub nie ma nic wspólnego z komputerami dziesiętnymi …
  • @smithkm Pokaż mi, gdzie k small k jest niejednoznaczne.
  • @Neuromancer Kb oznacza … Może kb. Och, prędkość modemów telefonicznych, które były powszechne do początku 2000 roku, została podana w kb / s.
  • @rexkogitans Było to Kbps dla kilobitów na sekundę. Oczywiście niektóre narzędzia sieciowe przeskalowałyby go do bajtów i byłby to KB / s (zwykle coś takiego), ale modemy miały Kbps, tak jak teraz, może to być Mbps lub Gbps (i tak dalej). Lub jeśli ' jest bardzo mało prawdopodobne, że tak Kb / s. (Być może niektórzy napisali to jako kbps)

Odpowiedź

Naucz ich obu, ale skup się na 1024 problemach. Będą musieli przekonwertować przepustowość itp. Podczas kursów sieciowych i innych.

Konwersja przy użyciu 1000 jest łatwa, ale 1024 jest trudna, więc skup się na tym, wiedza pomoże im w kursach architektury komputera, montażu i sieci. Będą musieli kiedyś z tym popracować, więc przygotuj ich

Komentarze

Odpowiedz

Wszystkie pozostałe odpowiedzi dają solidne powody, by uczyć, że zarówno istnieją, jak i jak bardzo zepsuta jest obecna sytuacja. Jest to ważne, ale nie wyjaśnia, czego uczniowie woleliby używać sami. Ta odpowiedź skupia się na praktycznej stronie tego, co uczniowie mogą zrobić; po zapoznaniu się z aktualną sytuacją na podstawie innych odpowiedzi.

Przyjmij najgorszy przypadek

Podobnie jak w przypadku wszelkiej niepewności w komputerach, najbezpieczniejszą opcją jest zawsze zakładanie najgorszego scenariusz przypadku. To znaczy, aby zminimalizować prawdopodobieństwo, że błędne założenie spowoduje błędy.

W tej sytuacji można zastosować następujące zasady w celu pokrycia baz:

  • Załóżmy, że ilość zasobów jest wielokrotnością 1000 bajtów.

  • Załóżmy, że zasoby używane przez zewnętrzne biblioteki itp. są wielokrotnościami 1024 bajtów.

  • Podaj dowolne liczby dotyczące używanych zasobów jako wielokrotności 1000 bajtów.

Te trzy założenia zapewniają, że:

  • W najgorszym przypadku pomyślisz, że masz mniej zasobów niż w rzeczywistości. Na przykład założenie, że 4kB RAM oznacza „4000 bajtów”, może oznaczać, że planujesz mieć o 96 bajtów mniej niż w rzeczywistości. Ale oznacza to, że nigdy nie będziesz planować posiadania 96 bajtów więcej niż w rzeczywistości.

  • W najgorszym przypadku założysz, że biblioteka, która twierdzi, że używa 2kB pamięci RAM, oznacza, że zużywa o 48 bajtów więcej pamięci niż w rzeczywistości (załóżmy, że oznaczało to 2048, a nie 2000). Ale nigdy nie planujesz używania 48 bajtów mniej pamięci RAM niż w rzeczywistości.

  • W najgorszym przypadku firmy zewnętrzne założą, że Twój program zużywa więcej zasobów niż robi, zakładając, że masz na myśli 1024 bajty na kB, a nie 1000. Ale nigdy przypadkowo nie doprowadzisz kogoś, kto myśli, że zużywa mniej niż w rzeczywistości.

Oczywiście nie jest to idealne rozwiązanie. niepotrzebnie tracą zasoby. Jednak w ogólnym przypadku mała różnica prawdopodobnie nie wystarczy (zwłaszcza jako student), aby ich projekt był niewykonalny. W tych konkretnych przypadkach, w których tak się dzieje, powinni już mierzyć dokładne ślady wszystkiego i nie zakładając niczego na podstawie samej dokumentacji.

Jednak korzyścią jest to, że twoje przypuszczenia o tym, co ktoś inny miał na myśli przez „2kB”, nie zaszkodzą ci, gdy się mylą. Które w tym konkretnym przypadku i jako ogólna lekcja dla uczniów – uważam za ważne.

Odpowiedz

„Która konwersja czy powinienem uczyć moich studentów? ”

Czy są to studia inżynierskie? Jeśli tak, mam 1024 na podstawie binarnej matematyki, ponieważ na tym opiera się inżynieria.

Możesz odliczać bity na palcach:

  • 1 $ $ palec = 2 $ stany, 0 i 1.
  • 2,4,8,16,32,64, 128, 256, 512, 1024 $.Najwyższa możliwa do zrealizowania wartość dziesiętna jest o 1 mniejsza, a liczba reprezentowanych stanów to $ 2 ^ x $ lista.
  • $ 2 ^ 1 -1 = 1 $. Dlatego 0,1
  • $ 2 ^ 2 – 1 = 3 $. Dlatego 0,1,2,3
  • $ 2 ^ 3 – 1 = 7 $. Dlatego 0,1,2,3,4,5,6,7
  • itd. do 2 $ 8 – 1 = 255 $. Dlatego 256 stanów, od 0 do 255.

Producenci mogą reklamować jako 2,2 TB, ale system operacyjny zgłosi to jako 2 TB, a może nawet 2 TB do wykorzystania.

Komentarze

  • Niestety niepoprawne. Różne systemy operacyjne różnie raportują. Szczególnie owocowe.
  • Na szczęście niepoprawnie. Przyzwoite systemy operacyjne prawidłowo raportują rozmiary, przy czym GB = 1 miliard bajtów. Te owocowe rozpoczęły.
  • @ gnasher729: Biorąc pod uwagę, że jednostki alokacji są wielokrotnościami 512 bajtów w prawie każdym systemie operacyjnym, raportowanie wykorzystania dysku w jednostkach po 1024 bajty ma dla mnie o wiele więcej sensu niż raportowanie w podstawowe dziesięć jednostek.

Odpowiedź

W ciągu moich 26 lat pracy jako profesjonalny inżynier oprogramowania nigdy nie spotkałem KB, mają na myśli wszystko inne niż 1024.

Naucz ich dowolnych definicji i upewnij się, że wiedzą, że 1024 jest jedyną przydatną.

Komentarze

  • Komentarze nie służą do rozszerzonej dyskusji; ta rozmowa została przeniesiona do czatu . Dyskusja służy do czatu, a nie do komentarzy, a dalsze dyskusje w komentarzach zostaną usunięte.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *