Skal jeg lære at 1 kB = 1024 byte eller 1000 byte? (Norsk)

Hvilken konvertering skal jeg undervise for studenter? At 1 kB er 1024 byte (binær) slik alle lærte tilbake på nittitallet eller den nylige bransjeledede «vennlige» konverteringen som sier at 1 kB faktisk er 1000 byte (desimal)?

Min umiddelbare følelse går mot binær konvertering, men når IEC sier noe annet og store OS-er bestemmer for desimalkonvertering (Mac OS X ≥ 10.6 og Ubuntu ≥ 10.10 bruker nå SI-prefikset utelukkende for å referere til krefter på 1000) Jeg er ikke så sikker lenger.

Kommentarer

  • Vær oppmerksom på at SI-prefikset » kilo » skrives alltid med små bokstaver » k » div Personlig er jeg vant til å se » kB «, selv når det strengt tatt ikke er ‘ ta SI prefiks.
  • xkcd
  • Ram er solet i kiB, Mib, GiB og harddisker i kB, MB, GB. Begge ofte merket kB, M B, GB. Så det handler ikke alltid om programmering.
  • Det jeg synes er morsomt er at power-of-two-versjonen (den som ‘ er tydelig det som vanligvis er ønsket ) har ingen som helst begrunnelse for bruk av » Kilo » prefikset – det ‘ bare at en eller annen vilkårlig makt på to tilfeldigvis kommer ganske nær en eller annen vilkårlig makt på 10, så vi ignorerer forskjellen for å gjøre det lettere å kunne si » K » (eller » M » eller » G «) fordi » 0x0200 » abyte er for vanskelig å si.
  • Byte er ikke en SI-enhet. SI-enheten for mengde er føflekken. 1 GB er omtrent 1,66 femtomole byte

Svar

Du bør lære begge deler, og du vil sannsynligvis bruke binær enhet. Når du snakker om forskjellen, kan det være nyttig å fortelle dem om hvordan du kan fortelle forskjellen når du leser dem:

SI-kiloen – er k :
$ 1 \ \ text {kB (kilobyte)} = 10 ^ {3} \ \ text {bytes} = 1000 \ \ text {bytes} $

Mens den binære kibi- er Ki :
$ 1 \ \ text {KiB (kibibyte)} = 2 ^ {10} \ \ text {bytes} = 1024 \ \ text {bytes} $

Jeg merker at du brukte KB i spørsmålet ditt for å referere til begge størrelsene; kanskje du også bør påpeke at KB kan tolkes som et av disse prefiksene (selv om Wikipedia antyder , brukes det oftest i stedet for KiB). I din posisjon vil jeg foreslå å avklare hvilken du mener hvis du bruker denne notasjonen.

(Mens du går over forvirrende enheter, er en relatert forskjell i skriveenhetene at små bokstaver er bits, store bokstaver B er byte; en åtte ganger forskjell er mye mer signifikant enn 2,4%.)

Kommentarer

  • Utover bare å lære begge deler, må du lære at k / kilo kan bety enten avhengig av kontekst / hvem ‘ som bruker den. Bare fordi kibble eksisterer, ‘ t mener folk liker eller faktisk bruker det.
  • Hvis du dekker biter og byte, bør du også i det minste kort nevne at en » kilobit » er nesten alltid 1000 bits (fordi nettverk) og en » kilobyte » er nesten alltid 1024 byte (fordi alt -unntatt for nettverk).
  • 1MiB er ≈5% større enn 1MB, 1GiB er 7,4% større enn 1GB, og 1TiB er nesten y 10% større enn 1 TB.
  • Jeg ble alltid lært at basen er binær, et 8-biters ord er en byte, et 16-biters ord er to byte, og etter binær konvensjon er 1 KB 1024 byte , 1MB er 1024 KB, 1GB er 1024 MB, 1TB er 1024 GB – og i binær, basisenheten for databehandling, er det veldig fornuftig. Jeg har alltid funnet det forsøkte adopsjonen av SI-bruk en feil og unødvendig forvirring. Når det er sagt, vil en student som lærer forstå forvirringen.
  • » Skal jeg lære at 1 KB = 1024 byte eller 1000 byte ? » Ja. 🙂

Svar

Du burde lære dem det «s rotet seg ut uten reparasjon , og det er deres generasjons jobb å lære neste generasjon for å bruke tullete standardprefikser , slik at når de endelig går av med pensjon (og de nåværende gammeldagene blir mer permanent fjernet fra argumentet), kan endelig være enighet.

Slik sakene foreløpig er, er alle prefiks ukjente uten sammenheng.En nettverks megabit er $ 10 ^ 6 $ bits, et filsystem megabyte er $ 2 ^ {20} $ byte, en harddisk megabyte er et sted ganske nær $ 10 ^ 6 $ byte, og en megapiksel er «sannsynligvis en million piksler, hvem bryr seg. «

Kommentarer

  • Konsensus synes å være at diskstørrelse er nærmeste enkle tilnærming lavere enn n × 1000 ^ m. Så 2.057 × 10 ^ 12 byte ville bli annonsert som 2 TB, ikke 2,1 TB.
  • I ‘ la merke til at prefiksene sjelden (i utgangspunktet aldri) har sin binære betydning med andre enheter enn byte . En megapiksel er 1 million piksler, en megabit er en million biter.
  • Filsystemets megabyte er $ 2 ^ {20} $ byte – kanskje. Noen ganger i samme operativsystem ser du ‘ » megabyte » (inkludert desimalpresisjon) å være $ 10 ^ 6 $ i noen av verktøyene og $ 2 ^ {20} $ i andre. Oftest i kommandolinjeverktøy vs GUI-verktøy, men jeg vet om et operativsystem der selv forskjellige OS-leverte GUI-verktøy er uenige om dette …

Svar

Egentlig må du lære dem begge slik at de blir advart om at bruken ikke er konsistent. Da kan du velge en som standard i kurset ditt fremover.

Hvilket du velger, kommer litt an på hva du lærer. Hvis det er hvordan man skal evaluere harddisker osv., Fungerer $ K = 1000 $ nå. For mest programmering er imidlertid $ K = 2 ^ {10} = 1024 $ sannsynligvis best.

Dessverre skyldes de to betydningene sannsynligvis at produsenter prøver å unngå forvirring i hodet til usofistikerte kunder.

Kommentarer

  • Kilobyte ble laget langt før 1000 byte kilobyte i 1998. IEC gjorde egentlig bare et rot av ting.
  • Ja, men kilo = 1000 går tilbake til 1795: etymonline.com/word/kilo- Så ikke-geeks har noen forrang her, kanskje. Men viktigere: Hvis du lærer dem bare den ene tingen som » riktig ting «, setter du dem opp for forvirring senere. Verden er rotete. Lærerne bør ikke ‘ t late som det ikke er ‘ t. Å være dogmatisk er ikke ‘ t veldig nyttig.
  • Også kB / KB hjelper ikke ‘ t med MB, GB, TB som a) er mye mer relevante b) har mye større forskjeller.
  • » Dessverre skyldes den doble betydningen sannsynligvis at produsenter prøver å unngå forvirring i hodet til usofistikerte kunder » Mer sannsynlig er det annonsører som ønsker at produktet deres skal høres større ut enn det egentlig er. Hvorfor annonsere en 3 TB harddisk med riktig 1 TB = 1024 * 1024 * 1024 * 1024 byte når du kan annonsere for en 3,3 TB harddisk ved hjelp av advokatgodkjent 1 TB = 1000 * 1000 * 1000 * 1000 byte. 3.3 er større enn 3, ikke sant?
  • @Readin Eller, som jeg ser det oftere, en 3TB-stasjon som faktisk har 2,7 TB total lagringsplass.

Svar

Forskjellen mellom å gi elevene en ordentlig diskusjon om dette emnet, og bare lære dem den ene eller den andre , er forskjellen mellom å være en ekte lærer og å være en resiterer av factoids.

Hvis det ikke er noen riktig definisjon av KB for deg, hvorfor skulle du innpode noe annerledes hos elevene dine? Svaret på spørsmålet ditt er således åpenbart i dannelsen. Ditt ansvar som lærer er å formidle en forståelse av problemet, ikke å koke det ned til en eller annen kjensgjerning at du vet at det er mindre enn sant.

Kommentarer

  • Jeg er enig, men før jeg gir en skikkelig diskusjon med studentene mine, gir jeg ‘ en skikkelig diskusjon her som i utgangspunktet var min intensjon ( i stedet for å få enkle det ene eller det andre svaret).

Svar

Ja Jeg er enig med andre svar, lærer begge deler og noterer også likheten.

Forskjellen

  • $ \ text {ki} = 1024 = 2 ^ {10} $
  • $ \ text {k} = 1000 = 10 ^ 3 $
  • $ \ text {k}, \ text {M}, \ text {G}, \ text {T}, \ text {P} $ brukes noen ganger til å bety $ \ text {ki}, \ text {Mi}, \ text {Gi}, \ text {Ti}, \ text {Pi} $

Likheten

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

Rask matematikk

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

Dette har en viss likhet og en viss forskjell med base 10-systemet som de (burde) vet. Først bryter vi den inn i blokker på 10 (i stedet for 3), resten konverterer vi bare til base 10, resten er den samme.

Hvor den brukes (hovedsakelig)

Det er viktig å vise hvor de 2 systemene brukes. Mens noen svar sier at de aldri har sett det $ 1000 $ -baserte SI-systemet som brukes i databehandling. Det viser seg at SI-systemet brukes mye, avhengig av hva som måles.

  • IEC 60027-2 A.2 og ISO / IEC 80000 f.eks. $ \ text {ki} $ :
    • mål på primærminnet: RAM, RAM, cache.
    • mål på filstørrelser , partisjonsstørrelser og diskstørrelser i operativsystemet.
  • SI-enheter f.eks $ \ text {k} $ :
    • mål for sekundære minneenheter: harddisker, SSD-er.
    • nettverkshastigheter.
    • CPU / minne / busshastigheter.
    • alle andre hastigheter.

Imidlertid bruker symbolet $ \ text {ki} $ brukes for øyeblikket ikke alltid.


se også https://en.wikipedia.org/wiki/Binary_prefix

Kommentarer

  • Dette svaret stiller spørsmålet.
  • @prl Hvis du mener å unngå spørsmålet (svare på et annet spørsmål), så er du delvis riktig. Jeg prøver å utvide andre svar. Og for å gi noen råd om «Hvordan», hvor spørsmålet var «Hvilket».
  • IMO er dette det beste svaret, men det kan forbedres litt ved eksplisitt omtale av stil . Dvs. på samme måte som det er forskjellige stiler for å sitere papirer, eller for å avgrense lister (vide Oxford komma), er det forskjellige stiler for formatering av tall. I en IEC-publikasjon etter 2000 kan du anta at husstil vil være SI / * bi. Andre organisasjoner / utgivere kan bruke andre stiler.
  • Ganske godt svar. To nitpicks: 0) For alle prefiksene (k, M, Mi, Gi, etc.), bruk romersk type, ikke kursiv; Jeg foreslår at du bruker \text{}. 1) Ki må ha en stor K.
  • @Nayuki “Den første bokstaven i hvert slikt prefiks er derfor identisk med de tilsvarende SI-prefiksene, bortsett fra » K «, som brukes om hverandre med » k «, mens det i SI bare er små bokstaver k representerer 1000. ” – no.wikipedia.org/wiki/Binary_prefix

Svar

Jeg har jobbet profesjonelt innen IT siden midten av 1980-tallet. Min nåværende praksis er å skrive det som for eksempel KB eller KiB jeg mener den gang, med KB som betyr $ 10 ^ 3 $ og KiB betyr $ 2 ^ {10} $. Hvis jeg snakker om RAM i en maskin, skriver jeg f.eks. «64MiB», og hvis jeg snakker om størrelsen på en som er produsert og markedsført diskstasjon Jeg skriver «1TB.» Jeg er ikke , men er forberedt på å bruke ord som «mebibyte» i samtalen. Kanskje en dag vil jeg endre mine verbale forkortelser fra f.eks. «meg» til «meb» men jeg er ikke der ennå.

Kommentarer

  • I ‘ har aldri sett, i en lignende tidsramme, er MiB osv. brukt til RAM. KB / MB / GB / TB som bekymret for RAM er alltid 1024-basert.
  • Hvis du ‘ bruker du store bokstaver K i kilo , du ‘ tar feil.(Jeg har sett folk blande millimeter med megamolar.)
  • Jeg tror jeg ‘ jeg sier / skriver » binær megabyte » for MiB enn » mebibyte «, men forkortelsen vil være OK .
  • @MontyHarder: Hva gjelder em-byte fra et uttalesynspunkt?
  • @supercat » em-byte » høres ut som en forkortelse av megabyte. Det løser derfor ikke ‘ tvetydigheten slik MiB gjør. Jeg finner MiB som en nyttig forkortelse (» i » infiks representerer » b_i_nary «), men ordet » mebibyte » selv kommer ikke glatt ut av munnen min, hvis i det hele tatt.

Svar

Den grunnleggende forvirringen er i notasjonen på KB (base 2 avledet) vs kB (SI-enhet) enhetsnivå, og det er nyttig å forstå opprinnelsen til bruken av basenavledet enhet.

En datamaskin er en binær maskin.

På grunnleggende nivå, minneadressering er binært. Vanligvis, på programmatisk nivå, blir adresseringen tastet i heksadesimalt format (den var opprinnelig binær); heksadesimalt er imidlertid også base 2 avledet (det er base 16 eller, 2 4 ) og er så direkte kompatibelt.

Å begynne på KB-nivå for å kommunisere forståelse her er nyttig siden begrepene base 2 avledede enheter har eksistert siden før MB var vanlig bruk (ingen differensiering i prefiks fra SI-enhet).

På en minnekontroller IC, hvis du forestiller deg at adressevalg er en rekke brytere (binære logiske porter) og avhengig av hvordan de byttes, får du minnet lest fra en bestemt adresse på datalinjene. Dataene lagres og returneres som byte.

Det har alltid vært et begrenset antall adresselinjer tilgjengelig for adresseminne, og det skjer slik at bruk av binære komplette adressesett for et gitt antall adresseringsbiter er basere 2 tall. Så på en 4KB-maskin er det 12 adresselinjer som representerer adressene 0 til 4095 (4096 byte). Disse 12 adresselinjene tilsvarer 111111111111-adressene som er mulige i binær, 0FFF i heksadesimal eller 4096 byte i desimal. Det ville ikke være logisk å begrense adressekartlegging til 4000 byte av hensyn til desimalkonvensjonen når det er 12 adresseringsbiter tilgjengelig.

Denne logikken fulgte i utgangspunktet også harddisker, der blokker er grupper av byte som får tilgang til adresse, men (og jeg har ikke sjekket), hører jeg at harddiskleverandører kanskje synes det er mindre viktig å bruke «runde adresseringsformater», spesielt med tanke på følgende.

Alle standardverdier i datamaskinterminologi er base 2 er avledet, men for markedsføringsformål er det ikke sikkert at noen leverandører 20MB harddisk er så store som noen som holder konvensjonen. Det er praktisk å slå 20 MB på noe selv om det ikke inneholder så mange blokker og er lettere å produsere fordi det er mindre datatetthet som kreves.

Tidlige IDE-harddisker (det var andre tidligere systemer før IDE) , før Logical Block Addressing (LBA) -systemet ble introdusert, ble konfigurert av sylindere, hoder og sektorer (CHS). Hele adresseringssystemet var binært, og til og med standard Unix-verktøy brukte 1024 byteblokker for visning. [1] Standardverktøy som Conky bruker fortsatt base 2 for visning av RAM- og HDD-informasjon, selv om den bruker GiB-format for å unngå forvirring. Senere tillot LBA-adresseringssystemet logisk kartlegging av CHS-formatet ettersom harddiskstørrelsen vokste, men LBA bruker ganske enkelt CHS-formatadresseringen internt i harddiskens innebygde kontroller og lar OS (og programmereren) bare vurdere de logiske blokkene.

Basis 2-logikken følger til større tall, for eksempel 11111111111111111111111111111111 byte er 2 GB i vanlig bruk eller 7FFFFFFF byte i heksadesimal. men den underliggende teknologien og konvensjonene er ikke desimaler. Datamaskiner er ikke desimalmaskiner; de er binære maskiner.

Nettverksadressering bruker også binære masker på hver av millioner av datapakker hvert sekund for å sikre riktig ruting, men det er lenge siden datadelen til en nettverkspakke har lignet et base 2. Antageligvis gjør det ytterste laget av pakken fremdeles {formodning}.

Du trenger uten tvil å nevne at det er forvirring, spesielt når det gjelder markedsføring av produkter som en bestemt størrelse, og at det er noen programitc-implementeringer for visning av verdier ved bruk av SI-enheter (det er ingen lenger ubeleilig eller tregere {faktisk er det sannsynligvis fremdeles tregere, men på moderne datamaskiner er det ikke lenger merkbart} for dataprogrammerere å implementere desimaler, spesielt for skjerm), men det kan ikke være tvil om datamaskinbruk at det riktige svaret er base 2-konvensjonen.

1024KB er JEDEC 100B.01 -standarden, noe som betyr at 1KB er 1024 byte.

rel:
[1] Wikipedia – Sylinderhode-sektor (CHS) https://en.wikipedia.org/wiki/Cylinder-head-sector

Dette spørsmålet er grundig utforsket.

Superbruker – Størrelse på filer i Windows OS. (Det er KB eller kB?) – https://superuser.com/questions/938234/size-of-files-in-windows-os-its-kb-or-kb

De fleste OS-er og de aller fleste enheter som håndterer minne / lagring, bruker prefikset K for Kilo til 1024 byte, så når jeg får RAM som sier at det er «en 4 GB-modul, vet jeg at det er 4 Gibi-Bytes (4 * 1024 * 1024 * 1024) og ikke Giga-Bytes (4 * 1000 * 1000 * 1000).


Quora – Hvor bruker vi 1 kB = 1000 byte, 1 MB = 1000 kB, 1 GB = 1000 MB, 1 TB = 1000 GB? Og hvor bruker vi 1 KB = 1024 byte, 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

Den andre ideen ble formulert av dataindustrien 1KB = 1024 byte 1MB = 1024 KB 1GB = 1024 MB Legg merke til at jeg bruker hovedstad B og ikke liten b, og store bokstaver innebærer byte. Den lille b skal ikke brukes. Dette er alltid tilfelle og gjelder for ting relatert til datamaskiner


Den første ideen ble formulert av telekommunikasjonsindustrien og gjelder ikke for datastørrelse (bits og byte), men for datahastighet (bits per sekund eller byte per sekund) 1Kbps = 1000 bps (bits per sekund) 1Mbps = 1024 Kbps 1Gbps = 1024 Mbps Merknad Jeg bruker liten b og ikke stor B, og liten b innebærer biter. Stor B bør ikke brukes. Dette er alltid tilfelle og gjelder for ting relatert til dataoverføring

Kommentarer

Svar

Jeg legger til et andre svar for å avklare noen problemer med spørsmålet og for å fjerne den åpenbare forvirringen i svarene.

  1. Spørsmålet sier feilaktig at den koblede IEC-kommunikasjonen anbefaler KB å bety 1000. Koblingen refererer bare til «kilo».

  2. kB kan bety SI kilobyte, dvs. 1000 byte

  3. KB gjør og har alltid betydd 1024 byte.

Nummer 3 er egentlig den eneste nyttige definisjonen innen programvareteknikk. Merk at K er stort.

Det er også KiB som tilsvarer KB . Merk at kiloordet alltid er representert med liten k. For OP å lære KB som 1000 er alltid flat feil.

Ovennevnte gjelder ikke MB og høyere. Der er bruken tvetydig og avhenger av kontekst.

Kommentarer

  • Merk at mens KB som 1000 kan være flat feil, er det ‘ er også nødvendig for å lære at mange mennesker gjør dette galt, og dermed må studentene aldri stole på KB til å bety 1024 uten ytterligere kjennskap til konteksten.
  • @Peter enige 100% En bred diskusjon om historie og kontekst på en måte som er interessant og underholdende, vil være med på å skille en middelmådig fra en anstendig utdannelse.
  • På hvilken måte er nummer 3 » den eneste nyttige definisjonen «?
  • @immibis – det ble sagt å være » den eneste nyttige definisjonen innen programvareteknikk «. På grunn av den binære karakteren til dataarkitektur og programvare, er det ‘ sannsynligvis riktig. Utenom diskusjoner om datamaskiner og spesielt programvare, er det mest sannsynlig ikke riktig.
  • @KevinFegan: De eneste situasjonene jeg kan tenke meg hvor jeg bruker store bokstaver K for 1000, skal ikke sees på som rett og slett feil der en liten » k » ikke er tilgjengelig, f.eks. noen situasjoner som involverer skilting eller begrensede tegnsett.

Svar

Lær dem at uten kontekst vet du ikke fordi det absolutt er mennesker der ute som vil bruke k til å bety 1000 og andre som vil bruke k til å bety 1024. Hvilket er riktig er ikke relevant fordi begge bruksområdene er der ute.Dette etterlater enhver bruk av «k» med byte tvetydig, med mindre den som ga tallet også spesifiserte hva de mente.

Av denne grunn vil jeg anbefale deg å lære at når du gir en verdi i byte, alltid bruker en IEC-prefiks som Ki i stedet. 10 kB er tvetydig, 10 KiB er ikke.

Vi kan erklære at visse bruksområder er «feil» alt vi ønsker, og jeg sier ikke at det nødvendigvis er uberettiget, men det får ikke disse bruken til å forsvinne.

Kommentarer

  • Ikke sett mange desimalbaserte datamaskiner nylig, så Kb når det refereres til datamaskinen er ikke ‘ t tvetydig
  • @Neuromancer Om det ‘ er tvetydig eller ikke har ingenting med desimalbaserte datamaskiner å gjøre …
  • @smithkm Vis meg hvor k liten k er tvetydig.
  • @Neuromancer Kb betyr … Kanskje kb. Å, hastigheten på telefonmodem som var vanlig frem til begynnelsen av 2000-tallet ble gitt i kb / s.
  • @rexkogitans Det var Kbps for Kilobits per sekund. Selvfølgelig vil noen nettverksverktøy skalere det til byte, og det vil være KB / s (vanligvis noe sånt), men modemene var Kbps akkurat som nå kan det være Mbps eller Gbps (og så videre). Eller hvis du ‘ er ekstremt usannsynlig ja Kbps. (Kanskje noen skrev det som kbps skjønt)

Svar

Lær dem begge, men fokuser på 1024 i problemer. De trenger å konvertere båndbredde osv. I nettverk og andre kurs.

Det er enkelt å konvertere med 1000, men 1024 er vanskelig, så fokuser på det, kunnskapen hjelper dem innen dataarkitektur, montering og nettverk. De «må jobbe med det en dag, så gjør dem klare

Kommentarer

  • @immibis ‘ @Lynob Hvis du ‘ vil fortsette denne diskusjonen, kan du gjøre det i chat . Men hvis du bare mener svaret er feil, nedstem og fortsett .

Svar

De andre svarene gir alle solide grunner til undervisningen at begge eksisterer og hvor dårlig rotet den nåværende situasjonen er. Dette er viktig, men det avklarer ikke hva studentene foretrekker å bruke selv. Dette svaret fokuserer på den praktiske siden av det studentene kan gjøre; etter å ha lært om den nåværende situasjonen fra de andre svarene.

Anta worst-case

Som med all usikkerhet i databehandling, er det tryggeste alternativet alltid å anta det verste -case scenario. Det vil si for å minimere sjansen for at en feil antagelse vil forårsake feil.

I denne situasjonen kan følgende brukes for å dekke basene dine:

  • Anta mengden ressurs du har er i multipler på 1000 byte.

  • Anta at ressursene som brukes av tredjepartsbiblioteker osv. er i multipler på 1024 byte.

  • Oppgi tall for ressurser du bruker som multipler på 1000 byte.

Disse tre forutsetningene sikrer at:

  • I verste fall vil du tro at du har mindre ressurser enn du faktisk har. For eksempel, forutsatt at 4 kB RAM betyr «4000 byte», kan det bety at du planlegger å ha 96 færre byte enn du faktisk gjør. Men det betyr at du aldri vil planlegge å ha 96 Bytes mer enn du faktisk gjør.

  • I verste fall vil du anta at biblioteket som sa at det bruker 2 kB RAM betydde at det bruker 48 Bytes mer minne enn det faktisk gjør (antar at det betydde 2048, ikke 2000). Men du planlegger aldri å bruke 48 Bytes mindre RAM enn det faktisk gjør.

  • I verste fall vil tredjeparter anta at programmet bruker flere ressurser enn det gjør, ved å anta at du mente 1024 byte per kB ikke 1000. Men du vil aldri føre et tilfelle noen som tror det bruker mindre enn det faktisk gjør.

Det er selvfølgelig ikke ideelt å måtte » miste «ressurser unødig. ikke antar størrelsen på noe fra dokumentasjon alene.

Fordelen er imidlertid at antagelsene dine om hva noen andre mente med «2kB» ikke vil skade deg når de «tar feil. Som i dette spesifikke tilfellet, og som en generell leksjon for elevene dine – jeg føler er viktig.

Svar

«Hvilken konvertering skal jeg undervise for studenter? «

Er dette ingeniørrelaterte undergrader? Hvis ja, ville jeg ha 1024, basert på binær matematikk som det er det ingeniørfag er basert på.

Du kan telle av bitene på fingrene:

  • $ 1 $ finger = $ 2 $ stater, 0 og 1.
  • $ 2,4,8,16,32,64, 128, 256, 512, 1024 $.Den høyeste desimalverdien som kan realiseres er 1 mindre, mens antall stater som er representert er $ 2 ^ x $ liste.
  • $ 2 ^ 1 -1 = 1 $. Derfor 0,1
  • $ 2 ^ 2 – 1 = 3 $. Derfor ble 0,1,2,3
  • $ 2 ^ 3 – 1 = 7 $. Derfor 0,1,2,3,4,5,6,7
  • etc. opp til $ 2 ^ 8 – 1 = 255 $. Derfor oppgir 256 stater, fra 0 til 255.

Produsenter kan annonsere som 2,2 TB, men operativsystemet vil rapportere det som 2 TB, eller til og med 2 TB brukbart.

Kommentarer

  • Feil, dessverre. Ulike operativsystemer rapporterer forskjellig. Spesielt de fruktige.
  • Feil, heldigvis. Anstendige operativsystemer rapporterer størrelser riktig, med GB = 1 milliard byte. De fruktige startet det.
  • @ gnasher729: Gitt at tildelingsenheter er multipler på 512 byte på omtrent hvert operativsystem, gir rapportering av diskutnyttelse i enheter på 1024 byte mye mer mening enn rapportering i basere ti enheter.

Svar

I mine 26 år som profesjonell programvareingeniør har jeg aldri møtt KB til betyr noe annet enn 1024.

Lær dem hvilke definisjoner du liker, og sørg for at de vet at 1024 er den eneste nyttige.

Kommentarer

  • Kommentarer er ikke for utvidet diskusjon; denne samtalen er flyttet til chat . Diskusjonen er for chat, ikke for kommentarer, og ytterligere diskusjon i kommentarene vil bli slettet.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *