Moet ik dat 1 kB = 1024 bytes of 1000 bytes leren?

Welke conversie moet ik aan mijn niet-gegradueerde studenten leren? Die 1 kB is 1024 bytes (binair), zoals iedereen in de jaren negentig leerde of de recente, door de industrie geleide “vriendelijke” conversie die zegt dat 1 kB in feite 1000 bytes (decimaal) is?

Mijn onmiddellijke gevoel gaat naar de binaire conversie, maar wanneer IEC anders zegt en grote besturingssystemen beslissen voor de decimale conversie (Mac OS X ≥ 10.6 en Ubuntu ≥ 10.10 gebruiken nu de SI-voorvoegsels exclusief om te verwijzen naar machten van 1000) Ik “ben er niet meer zo zeker van.

Opmerkingen

  • Merk op dat het SI-voorvoegsel ” kilo ” wordt altijd geschreven met een kleine letter ” k “. Persoonlijk ben ik gewend om ” kB ” te zien, zelfs als het strikt niet ‘ ta SI-voorvoegsel.
  • xkcd
  • Ram wordt opgelost in kiB, Mib, GiB en harde schijven in kB, MB, GB. Beiden vaak aangeduid met kB, M B, GB. Het gaat dus niet altijd om programmeren.
  • Wat ik amusant vind, is dat de kracht-van-twee-versie (degene die ‘ s duidelijk is wat gewoonlijk gewenst is ) heeft geen enkele rechtvaardiging voor het gebruik van het ” Kilo ” voorvoegsel – het ‘ s alleen dat een willekeurige macht van twee toevallig redelijk dicht bij een willekeurige macht van 10 komt, dus negeren we het verschil om het gemak van ” K ” (of ” M ” of ” G “) omdat ” 0x0200 ” abyte te moeilijk is om te zeggen.
  • Byte is geen SI-eenheid. De SI-eenheid voor hoeveelheid is de mol. 1 GB is ongeveer 1,66 femtomole bytes

Antwoord

Je moet beide lesgeven, en waarschijnlijk wil je de binaire eenheid. Als je het over het verschil hebt, kan het handig zijn om ze te vertellen hoe ze het verschil kunnen zien als je ze leest:

De SI-kilo is k :
$ 1 \ \ text {kB (kilobyte)} = 10 ^ {3} \ \ text {bytes} = 1000 \ \ text {bytes} $

Terwijl de binaire kibi- Ki is:
$ 1 \ \ text {KiB (kibibyte)} = 2 ^ {10} \ \ text {bytes} = 1024 \ \ text {bytes} $

Ik merk dat je KB in je vraag hebt gebruikt om naar beide formaten te verwijzen; misschien moet u er ook op wijzen dat KB kan worden geïnterpreteerd als een van deze voorvoegsels (hoewel Wikipedia suggereert dat het meestal wordt gebruikt in plaats van KiB). In uw standpunt zou ik willen voorstellen om te verduidelijken welke u bedoelt als u deze notatie gebruikt.

(Terwijl u over verwarrende eenheden gaat, is een gerelateerd verschil in schrijfeenheden dat kleine letters b bits zijn, hoofdletters B is bytes; een achtvoudig verschil is veel groter dan 2,4%.)

Opmerkingen

  • Behalve dat je beide leert, moet je dat ook leren: k / kilo kan een van beide betekenen, afhankelijk van de context / wie ‘ s het gebruikt. Alleen omdat brokjes bestaan niet ‘ t gemene mensen vinden het leuk of gebruiken het echt.
  • Als je bits en bytes behandelt, moet je ook in ieder geval kort vermelden dat een ” kilobit ” is bijna altijd 1000 bits (omdat netwerken) en een ” kilobyte ” is bijna altijd 1024 bytes (omdat alles -behalve voor netwerken).
  • 1MiB is ≈5% groter dan 1MB, 1GiB is 7,4% groter dan 1GB en 1TiB is bijnal y 10% groter dan 1Tb.
  • Mij is altijd geleerd dat de basis binair is, een 8-bits woord een byte, een 16-bits woord twee bytes en, volgens binaire conventie 1KB 1024 bytes , 1 MB is 1024 KB, 1 GB is 1024 MB, 1 TB is 1024 GB – en in binair, de basiseenheid van computers, is het volkomen logisch. Ik heb de poging tot acceptatie van SI-gebruik altijd een onjuiste en onnodige verwarring gevonden. Dat gezegd hebbende, zal een student als docent de verwarring moeten begrijpen.
  • ” Moet ik dat leren 1 KB = 1024 bytes of 1000 bytes ? ” Ja. 🙂

Antwoord

Je zou ze moeten leren dat het “s onherstelbaar verknoeid is , en het is de taak van hun generatie om de volgende generatie om de dom klinkende standaardvoorvoegsels te gebruiken, zodat wanneer ze eindelijk met pensioen gaan (en de huidige oldtimers meer permanent uit het argument worden verwijderd), kan eindelijk een consensus zijn.

Zoals de zaken er momenteel voor staan, zijn alle voorvoegsels onkenbaar zonder context.Een netwerkmegabit is $ 10 ^ 6 $ bits, een bestandssysteem megabyte is $ 2 ^ {20} $ bytes, een harde schijf megabyte is ergens in de buurt van $ 10 ^ 6 $ bytes, en een megapixel is “waarschijnlijk een miljoen pixels, who cares. “

Reacties

  • De consensus lijkt te zijn dat de schijfgrootte de dichtstbijzijnde eenvoudige benadering is lager dan n × 1000 ^ m. Dus 2.057 × 10 ^ 12 bytes worden geadverteerd als 2 TB, niet 2,1 TB.
  • I ‘ merk op dat de voorvoegsels zelden (in feite nooit) hun binaire betekenis hebben met andere eenheden dan bytes . Een megapixel is 1 miljoen pixels, een megabit is een miljoen bits.
  • De megabyte van het bestandssysteem is $ 2 ^ {20} $ bytes – misschien. Soms zie je in hetzelfde besturingssysteem ‘ ” megabytes ” (inclusief decimale precisie) zijnde $ 10 ^ 6 $ in sommige tools en $ 2 ^ {20} $ in andere. Meestal in opdrachtregelprogrammas versus GUI-tools, maar ik ken een besturingssysteem waar zelfs verschillende door het besturingssysteem geleverde GUI-tools het hier niet mee eens zijn …

Antwoord

Eigenlijk moet je ze beide leren, zodat ze worden gewaarschuwd dat het gebruik niet consistent is. Vervolgens kunt u er een kiezen als standaard in uw cursus.

Welke je kiest, hangt een beetje af van wat je lesgeeft. Als het de manier is om harde schijven enz. Te evalueren, dan werkt $ K = 1000 $ nu. Voor de meeste programmering is $ K = 2 ^ {10} = 1024 $ waarschijnlijk het beste.

Helaas is de dubbele betekenis waarschijnlijk te wijten aan het feit dat fabrikanten verwarring proberen te vermijden in de hoofden van eenvoudige klanten.

Opmerkingen

  • Kilobyte werd bedacht ver vóór de 1000 byte kilobyte in 1998. IEC heeft er echt een zooitje van gemaakt.
  • Ja, maar kilo = 1000 gaat terug tot 1795: etymonline.com/word/kilo- Dus niet-geeks hebben hier misschien enige voorrang. Maar belangrijker: als je ze maar één ding leert als het ” juiste ding “, zorg je dat ze later voor verwarring zorgen. De wereld is rommelig. Leraren moeten niet ‘ doen alsof het niet ‘ t is. Dogmatisch zijn is niet ‘ niet erg nuttig.
  • Ook KB / KB helpt ‘ niet met MB, GB, TB die a) veel relevanter zijn b) veel grotere verschillen hebben.
  • ” Helaas is de dubbele betekenis waarschijnlijk te wijten aan het feit dat fabrikanten verwarring in de geesten van eenvoudige klanten ” Het is waarschijnlijker dat adverteerders willen dat hun product groter klinkt dan het in werkelijkheid is. Waarom adverteren voor een harde schijf van 3TB met de juiste 1TB = 1024 * 1024 * 1024 * 1024 bytes als je een 3.3TB harde schijf kunt adverteren met de door de advocaat goedgekeurde 1TB = 1000 * 1000 * 1000 * 1000 bytes. 3.3 is groter dan 3, toch?
  • @Readin Of, zoals ik het vaker zie, een schijf van 3 TB die eigenlijk 2,7 TB aan totale opslag heeft.

Antwoord

Het verschil tussen uw studenten een goede bespreking van dit onderwerp geven en ze eenvoudig het een of het ander leren, is het verschil tussen een echte opvoeder zijn en een reciteerder van factoïden zijn.

Als er niet één correcte definitie van KB voor je is, waarom zou je je leerlingen dan iets anders bijbrengen? Het antwoord op uw vraag is dus duidelijk bij de vorming. Het is uw verantwoordelijkheid als docent om een goed begrip van de kwestie over te brengen, niet om het neer te zetten op een of ander feit waarvan u weet dat het niet waar is.

Opmerkingen

  • Ik ben het ermee eens, maar voordat ik een goede discussie met mijn studenten geef, moet ik ‘ hier een goede discussie geven, wat in de eerste plaats mijn bedoeling was ( in plaats van simpele de een of de andere antwoorden te krijgen).

Antwoord

Ja Ik ben het eens met andere antwoorden, leer ze beide en merk ook de gelijkenis op.

Het verschil

  • $ \ text {ki} = 1024 = 2 ^ {10} $
  • $ \ text {k} = 1000 = 10 ^ 3 $
  • $ \ text {k}, \ text {M}, \ text {G}, \ text {T}, \ text {P} $ wordt soms gebruikt in de betekenis van $ \ text {ki}, \ text {Mi}, \ text {Gi}, \ text {Ti}, \ text {Pi} $

De gelijkenis

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

Snelle wiskunde

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

Dit heeft enige gelijkenis en enig verschil met het basis 10-systeem dat ze (zouden moeten) kennen. Eerst breken we het op in blokken van 10 (in plaats van 3), de rest converteren we gewoon naar basis 10, de rest is hetzelfde.

Waar gebruikt (voornamelijk)

Het is belangrijk om te laten zien waar de 2 systemen worden gebruikt. Terwijl sommige antwoorden zeggen dat ze nog nooit het $ 1000 $ -gebaseerde SI-systeem hebben gezien dat in computers wordt gebruikt. Het blijkt dat het SI-systeem veel wordt gebruikt, afhankelijk van wat er wordt gemeten.

  • IEC 60027-2 A.2 en ISO / IEC 80000 b.v. $ \ text {ki} $ :
    • metingen van primair geheugen: RAM, RAM, cache.
    • meting van bestandsgroottes , partitiegroottes en schijfgroottes binnen OS.
  • SI-eenheden bijv $ \ text {k} $ :
    • metingen van secundaire geheugenapparaten: harde schijven, SSDs.
    • netwerksnelheden.
    • CPU / geheugen / bussnelheden.
    • alle andere snelheden.

Het gebruik van symbool $ \ text {ki} $ wordt op dit moment niet altijd gebruikt.


zie ook https://en.wikipedia.org/wiki/Binary_prefix

Reacties

  • Dit antwoord roept de vraag op.
  • @prl Als je de vraag wilt ontwijken (een andere vraag beantwoorden), dan heb je gedeeltelijk gelijk. Ik probeer uit te breiden op andere antwoorden. En om wat advies te geven over “Hoe”, waarbij de vraag “Welke” was.
  • IMO dit is het beste antwoord, maar het zou enigszins verbeterd kunnen worden door expliciet stijl te noemen . D.w.z. Net zoals er verschillende stijlen zijn voor het citeren van papers, of voor het scheiden van lijsten (zie Oxford comma), zijn er verschillende stijlen voor het opmaken van getallen. In een IEC-publicatie na 2000 mag je aannemen dat de huisstijl SI / * bi zal zijn. Andere organisaties / uitgevers gebruiken mogelijk andere stijlen.
  • Vrij goed antwoord. Twee nitpicks: 0) Gebruik voor alle voorvoegsels (k, M, Mi, Gi, enz.) Het romeinse type, niet cursief; Ik raad aan om \text{} te gebruiken. 1) Ki moet een hoofdletter K hebben.
  • @Nayuki “De eerste letter van elk dergelijk voorvoegsel is daarom identiek aan de overeenkomstige SI-voorvoegsels, behalve ” K “, die door elkaar wordt gebruikt met ” k “, terwijl in SI alleen de kleine letters k staat voor 1000. ” – en.wikipedia.org/wiki/Binary_prefix

Antwoord

Ik “werk sinds het midden van de jaren tachtig professioneel in de IT. Mijn huidige praktijk is om te schrijven wat ik destijds bedoel, bijvoorbeeld KB of KiB, waarbij KB $ 10 betekent ^ 3 $ en KiB betekent $ 2 ^ {10} $. Als ik het “heb over het RAM-geheugen in een machine, schrijf ik bijvoorbeeld” 64MiB “en als ik het heb over de as-made en as-market-grootte van een schijfstation Ik “zal” 1TB schrijven. “Ik ben niet , maar ben bereid om woorden als” mebibyte “in een gesprek te gebruiken. Misschien zal ik op een dag mijn verbale afkortingen veranderen van bijv. “meg” naar “meb” maar ik “ben er nog niet.

Reacties

  • I ‘ heb nog nooit in een vergelijkbaar tijdsbestek MiB enz. voor RAM gezien. KB / MB / GB / TB wat betreft RAM is altijd 1024-gebaseerd.
  • Als je ‘ als je K in hoofdletters gebruikt voor kilo , heb je ‘ het mis.(Ik heb mensen millimeter door elkaar zien halen met megamolair.)
  • Ik denk dat ik ‘ eerder ” binaire megabyte ” voor MiB dan ” mebibyte “, maar de afkorting zou in orde zijn .
  • @MontyHarder: vanuit uitspraakstandpunt, hoe zit het met em-byte?
  • @supercat ” em-byte ” klinkt als een afkorting van megabyte. Het lost daarom niet ‘ de dubbelzinnigheid op zoals MiB dat doet. Ik vind MiB een nuttige afkorting (de ” i ” tussenvoegsel staat voor ” b_i_nary “), maar het woord ” mebibyte ” zelf komt niet soepel uit mijn mond, of helemaal niet.

Answer

De fundamentele verwarring zit in de notatie in de KB (basis 2 afgeleid) vs kB (SI-eenheid) eenheidsniveau, en het is nuttig om de oorsprong van het gebruik van de afgeleide eenheid van basis 2 te begrijpen.

Een computer is een binaire machine.

Aan de basisniveau, geheugenadressering is binair. Gewoonlijk wordt op programmatisch niveau de adressering ingetoetst in hexadecimaal formaat (het was oorspronkelijk binair); hexadecimaal is echter ook afgeleid van basis 2 (het is basis 16 of 2 4 ) en is dus direct compatibel.

Beginnen op KB-niveau voor het communiceren van begrip is hier handig omdat de concepten van basis 2 afgeleide eenheden bestaan al voordat MB algemeen werd gebruikt (geen differentiatie in prefix van SI-eenheid).

Op een geheugencontroller-IC, als je je voorstelt dat adresselectoren een rij schakelaars zijn (binaire logische poorten) en afhankelijk van hoe ze worden geschakeld, wordt het geheugen gelezen vanaf een specifiek adres op de datalijnen. De gegevens worden opgeslagen en geretourneerd als bytes.

Er is altijd een beperkt aantal adresregels beschikbaar geweest om het geheugen te adresseren, en het gebeurt zo dat het gebruik van binaire complete adressets voor een bepaald aantal adresseringsbits basis 2 nummers. Dus op een 4KB-machine zijn er 12 adresregels die de adressen 0 tot en met 4095 (4096 bytes) vertegenwoordigen. Deze 12 adresregels komen overeen met de 111111111111 adressen mogelijk in binair, 0FFF in hexadecimaal of 4096 bytes in decimaal. Het zou niet logisch zijn om adrestoewijzing te beperken tot 4000 bytes omwille van decimale conventie wanneer er 12 adresbits beschikbaar zijn.

Deze logica volgde aanvankelijk ook op harde schijven, waar blokken groepen van bytes zijn waartoe toegang wordt verkregen adres, echter (en ik heb het niet gecontroleerd), hoor ik dat hardeschijfleveranciers het misschien minder kritisch vinden om “ronde adressering” -formaten te gebruiken, vooral gezien het volgende.

Alle standaardwaarden in computerterminologie zijn base 2 afgeleid, hoewel, voor marketingdoeleinden, sommige leveranciers de 20 MB harde schijf misschien niet zo groot zijn als sommige die de conventie naleven. Het is handig om 20 MB op iets te slaan, zelfs als het niet zoveel blokken bevat en het is gemakkelijker te vervaardigen omdat er minder datadichtheid nodig is.

Vroege IDE-harde schijven (er waren andere eerdere systemen vóór IDE) , voordat het Logical Block Addressing (LBA) -systeem werd geïntroduceerd, werd het geconfigureerd door cilinders, heads en sectoren (CHS). Het hele adresseringssysteem was binair, en zelfs standaard Unix-hulpprogrammas gebruikten blokken van 1024 byte voor weergave. [1] Standaardtools zoals Conky gebruikt nog steeds basis 2 voor het weergeven van RAM- en HDD-informatie, hoewel het het GiB-stijlformaat gebruikt om verwarring te voorkomen. Later maakte het LBA-adressysteem een logische toewijzing van het CHS-formaat mogelijk naarmate de harde schijf groter werd, maar LBA past gewoon de CHS-formaatadressering intern toe op de ingebouwde controller van de harde schijf en laat het besturingssysteem (en de programmeur) gewoon overwegen de logische blokken.

De logica van basis 2 volgt door naar grotere getallen, bijvoorbeeld, 111111111111111111111111111111111 bytes is 2GB in standaardgebruik of 7FFFFFFF bytes in hexadecimaal. Het is alleen in decimaal waar dit er rommelig uitziet als 2.147.483.647 bytes, maar de onderliggende technologie en conventies zijn niet decimaal. Computers zijn geen decimale machines; het zijn binaire machines.

Netwerkadressering gebruikt ook elke seconde binaire maskers op elk van de miljoenen datapakketten om de juiste routering te garanderen, maar het is lang geleden dat het datagedeelte van een netwerkpakket lijkt op een basisnummer 2. Waarschijnlijk doet de buitenste laag van het pakket nog steeds {vermoeden}.

U zult ongetwijfeld moeten vermelden dat er verwarring bestaat, vooral als het gaat om het op de markt brengen van producten als zijnde een bepaalde maat, en dat er enkele programma-implementaties zijn voor het weergeven van waarden met SI-eenheden (het is geen langer ongemakkelijker of langzamer {eigenlijk, het is waarschijnlijk nog langzamer, maar op moderne computers is het niet langer merkbaar} voor computerprogrammeurs om decimalen te implementeren, met name voor weergave), maar er kan geen twijfel bestaan over het computergebruik dat het juiste antwoord is de basis 2 conventie.

1024 KB is de JEDEC 100B.01 standaard, wat betekent dat 1 KB 1024 bytes is.

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

Deze vraag is uitgebreid onderzocht.

SuperUser – Grootte van bestanden in Windows OS. (Is het KB of kB?) – https://superuser.com/questions/938234/size-of-files-in-windows-os-its-kb-or-kb

De meeste besturingssystemen en de overgrote meerderheid van de apparaten die met geheugen / opslag omgaan, gebruiken de prefixen K voor Kilo om 1024 bytes te betekenen, dus als ik RAM krijg die zegt dat het “een module van 4 GB is, weet ik dat het 4 Gibi-Bytes is (4 * 1024 * 1024 * 1024) en niet Giga-Bytes (4 * 1000 * 1000 * 1000).


Quora – Waar gebruiken we 1 kB = 1000 bytes, 1 MB = 1000 kB, 1 GB = 1000 MB, 1 TB = 1000 GB? En waar gebruiken we 1 KB = 1024 bytes, 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

Het tweede idee is geformuleerd door de computerindustrie 1KB = 1024 bytes 1MB = 1024 KB 1GB = 1024 MB Let op: ik gebruik hoofdletter B en niet kleine b, en hoofdletter B impliceert bytes De kleine b mag niet worden gebruikt Dit is altijd het geval en geldt voor zaken die verband houden met computers


Het eerste idee is geformuleerd door de telecommunicatie-industrie en is niet van toepassing op de datagrootte (bits en bytes) maar op datasnelheid (bits per seconde of bytes per seconde) 1 Kbps = 1000 bps (bits per seconde) 1 Mbps = 1024 Kbps 1 Gbps = 1024 Mbps Let op: ik gebruik kleine b en niet hoofdletter B, en kleine b impliceert bits De hoofdletter B mag niet worden gebruikt Dit is altijd het geval en geldt voor zaken die verband houden met gegevensoverdracht

Reacties

Antwoord

Ik voeg een tweede antwoord toe om enkele problemen met de vraag te verduidelijken en om de voor de hand liggende verwarring in de antwoorden weg te nemen.

  1. De vraag stelt ten onrechte dat de gekoppelde IEC-communicatie KB aanbeveelt om 1000 te betekenen. De link verwijst alleen naar “kilo”.

  2. KB kan betekenen de SI kilobyte, dat wil zeggen 1000 bytes

  3. KB doet en heeft altijd 1024 bytes betekend.

Nummer 3 is in wezen de enige bruikbare definitie in software engineering. Merk op dat de K een hoofdletter is.

Er is ook KiB die gelijk is aan KB . Merk op dat het kilowoord altijd wordt weergegeven door een kleine k. Voor OP om KB te leren als 1000 ooit is altijd fout.

Het bovenstaande is niet van toepassing op MB en hoger. Daar is het gebruik dubbelzinnig en afhankelijk van de context.

Reacties

  • Merk op dat hoewel KB als 1000 plat fout kan zijn, het ‘ s ook nodig om te leren dat veel mensen dit verkeerd doen, en dus mogen studenten nooit vertrouwen dat KB 1024 bedoelt zonder verdere kennis van de context.
  • @Peter Agreed 100% Een brede bespreking van geschiedenis en context op een manier die interessant en onderhoudend is, zou een middelmatige en fatsoenlijke opleiding helpen onderscheiden.
  • Op welke manier is nummer 3 ” de enige bruikbare definitie “?
  • @immibis – er werd gezegd dat ” de enige bruikbare definitie in software engineering “. Vanwege de binaire aard van computerarchitectuur en software, is het ‘ waarschijnlijk correct. Buiten discussies over computers en in het bijzonder over software, is het waarschijnlijk niet correct.
  • @KevinFegan: De enige situaties die ik kan bedenken waarin het gebruik van een hoofdletter K voor 1000 niet als gewoon verkeerd beschouwd mag worden, zouden die waar een kleine letter ” k ” niet beschikbaar is, bijvoorbeeld in sommige situaties met bewegwijzering of beperkte tekensets.

Answer

Leer ze dat je het zonder context niet weet, want er zijn zeker mensen die k zullen gebruiken om 1000 te betekenen en anderen wie k zal gebruiken om 1024 te betekenen. Wat juist is, is niet relevant omdat beide gebruiken zijn daarbuiten.Dit laat elk gebruik van “k” met bytes dubbelzinnig, tenzij degene die het nummer heeft gegeven ook specificeerde wat ze betekenden.

Om deze reden zou ik “aanraden dat je leert dat wanneer je een waarde in bytes opgeeft, je altijd een IEC-voorvoegsel zoals Ki in plaats daarvan. 10 kB is dubbelzinnig, 10 KiB niet.

We kunnen verklaren dat bepaalde toepassingen “fout” zijn willen, en ik “zeg niet dat dit per se onterecht is, maar dat zorgt er niet voor dat die gebruiken niet verdwijnen.

Reacties

  • Niet veel gezien op decimalen gebaseerde computers, dus Kb bij het verwijzen naar computer is niet ‘ t dubbelzinnig
  • @Neuromancer Of het ‘ s dubbelzinnig is of niet heeft niets te maken met op decimalen gebaseerde computers …
  • @smithkm Laat me zien waar k klein k dubbelzinnig is.
  • @Neuromancer Kb betekent … Misschien kb. Oh, de snelheid van telefoonmodems die tot het begin van de jaren 2000 gebruikelijk waren, werd gegeven in kb / s.
  • @rexkogitans Het was Kbps voor kilobits per seconde. Natuurlijk zouden sommige netwerkhulpprogrammas het opschalen naar bytes en dat zou KB / s zijn (meestal zoiets) maar de modems waren Kbps, net zoals nu het Mbps of Gbps (enzovoort) zou kunnen zijn. Of als je ‘ zeer onwaarschijnlijk bent, ja Kbps. (Misschien schreven sommigen het echter als kbps)

Antwoord

Leer ze allebei maar concentreer je bij problemen op 1024. Ze zullen bandbreedte moeten converteren, enz. In netwerken en andere cursussen.

Converteren met 1000 is eenvoudig, maar 1024 is lastig, dus concentreer je daarop, de kennis zal hen helpen bij computerarchitectuur, assemblage en netwerkcursussen. Ze “zullen er op een dag mee moeten werken, dus maak ze klaar

Reacties

Antwoord

De andere antwoorden geven allemaal solide redenen om te onderwijzen dat beide bestaan en hoe slecht de huidige situatie is. Dit is belangrijk, maar het maakt niet duidelijk wat de studenten het liefst zelf zouden moeten gebruiken. Dit antwoord richt zich op de praktische kant van wat de studenten kunnen doen; na het leren van de huidige situatie uit de andere antwoorden.

Ga uit van het slechtste geval

Zoals met alle onzekerheid bij computergebruik, is de veiligste optie altijd om het slechtste aan te nemen -case scenario. Dat wil zeggen, om de kans te verkleinen dat een onjuiste aanname bugs veroorzaakt.

In deze situatie kan het volgende worden toegepast om uw bases te dekken:

  • Veronderstel de hoeveelheid bronnen die je hebt, is in veelvouden van 1000 bytes.

  • Veronderstel dat bronnen die worden gebruikt door bibliotheken van derden enz. in veelvouden van 1024 bytes zijn.

  • Geef cijfers voor bronnen die u gebruikt als veelvouden van 1000 bytes.

Deze drie veronderstellingen zorgen ervoor dat:

  • In het ergste geval zult u denken dat u over minder middelen beschikt dan u in werkelijkheid heeft. Als u bijvoorbeeld aanneemt dat 4 kB RAM “4000 bytes” betekent, zou dit kunnen betekenen dat u van plan bent 96 bytes minder te hebben dan u in werkelijkheid doet. Maar het betekent dat je nooit van plan bent 96 bytes meer te hebben dan je in werkelijkheid doet.

  • In het ergste geval zal je aannemen dat de bibliotheek die zei dat het 2kB RAM gebruikt, betekende dat het 48 bytes meer geheugen gebruikt dan het in werkelijkheid doet (neem aan dat het 2048 betekende, niet 2000). Maar je zult nooit plannen om 48 bytes minder RAM te gebruiken dan het in werkelijkheid doet.

  • In het ergste geval gaan derde partijen ervan uit dat uw programma meer bronnen gebruikt dan het doet, door aan te nemen dat u 1024 bytes per kB bedoelde, niet 1000. Maar u zult nooit per ongeluk leiden iemand die denkt dat het minder gebruikt dan het in werkelijkheid doet.

Natuurlijk “is het niet ideaal om te moeten” middelen onnodig kwijtraken. Maar in het algemene geval is het kleine verschil waarschijnlijk niet voldoende (vooral als student) om hun project onhaalbaar te maken. In die specifieke gevallen zouden ze al de exacte voetafdrukken van alles moeten meten en de grootte van iets niet aannemen uit documentatie alleen.

Het voordeel is echter dat uw aannames over wat iemand anders bedoelde met “2kB” u geen pijn zullen doen als ze ongelijk hebben. Wat in dit specifieke geval, en als een algemene les voor uw leerlingen, volgens mij belangrijk is.

Antwoord

“Welke conversie moet ik lesgeven aan mijn undergrad-studenten? ”

Zijn dit engineering-gerelateerde studenten? Zo ja, dan heb ik 1024, gebaseerd op binaire wiskunde, want daar is engineering op gebaseerd.

Je kunt de bits op je vingers tellen:

  • $ 1 $ finger = $ 2 $ staten, 0 en 1.
  • $ 2,4,8,16,32,64, 128, 256, 512, 1024 $.De hoogste decimale waarde die kan worden gerealiseerd is 1 minder, terwijl het aantal vertegenwoordigde staten $ 2 ^ x $ lijst is.
  • $ 2 ^ 1 -1 = 1 $. Daarom 0,1
  • $ 2 ^ 2 – 1 = 3 $. Daarom 0,1,2,3
  • $ 2 ^ 3 – 1 = 7 $. Daarom 0,1,2,3,4,5,6,7
  • etc. tot $ 2 ^ 8 – 1 = 255 $. Daarom 256 staten, van 0 tot 255.

Fabrikanten adverteren als 2,2 TB, maar het besturingssysteem rapporteert dit als 2 TB, of misschien zelfs 2 TB bruikbaar.

Opmerkingen

  • Onjuist, helaas. Verschillende besturingssystemen rapporteren anders. Vooral de fruitige.
  • Gelukkig onjuist. Fatsoenlijke besturingssystemen rapporteren de juiste grootte, met GB = 1 miljard bytes. De fruitige begonnen ermee.
  • @ gnasher729: Aangezien allocatie-eenheden veelvouden zijn van 512 bytes op zowat elk besturingssysteem, is het rapporteren van schijfgebruik in eenheden van 1024 bytes veel logischer voor mij dan rapporteren in basis tien eenheden.

Answer

In mijn 26 jaar als professionele software engineer ben ik nog nooit KB tegengekomen om betekent iets anders dan 1024.

Leer ze welke definities je maar wilt en zorg ervoor dat ze weten dat 1024 de enige bruikbare is.

Opmerkingen

  • Reacties zijn niet bedoeld voor uitgebreide discussie; dit gesprek is verplaatst naar chat . Discussie is bedoeld om te chatten, niet voor opmerkingen, en elke verdere discussie in de opmerkingen wordt verwijderd.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *