Ska jag lära mig att 1 kB = 1024 byte eller 1000 byte?

Vilken omvandling ska jag undervisa för mina studenter? Att 1 kB är 1024 byte (binärt) som alla lärde sig på nittiotalet eller den senaste branschledda ”vänliga” omvandlingen som säger att 1 kB faktiskt är 1000 byte (decimal)?

Min omedelbara känsla går mot den binära konverteringen, men när IEC säger något annat och större OS bestämmer för decimalkonvertering (Mac OS X ≥ 10.6 och Ubuntu ≥ 10.10 använder nu SI-prefixen uteslutande för att hänvisa till befogenheter på 1000) Jag är inte så säker längre.

Kommentarer

  • Observera att SI-prefixet ” kilo ” skrivs alltid med gemener ” k ” div Personligen är jag van att se ” kB ”, även om det inte är ’ ta SI-prefix.
  • xkcd
  • Ram sätts i kiB, Mib, GiB och hårddiskar i kB, MB, GB. Båda är ofta märkta kB, M B, GB. Så det handlar inte alltid om programmering.
  • Det jag tycker är roligt är att power-of-two-versionen (den som ’ tydligt visar vad som vanligtvis önskas ) har ingen som helst motivering för användningen av ” Kilo ” prefixet – det ’ s bara att någon godtycklig kraft av två råkar komma ganska nära någon godtycklig kraft på 10 så vi ignorerar skillnaden för bekvämligheten att kunna säga ” K ” (eller ” M ” eller ” G ”) eftersom ” 0x0200 ” abyte är för svårt att säga.
  • Byte är inte en SI-enhet. SI-enheten för kvantitet är molen. 1 GB är ungefär 1,66 femtomolbyte

Svar

Du borde lära ut båda, och du förmodligen vill använda binär enhet. När du pratar om skillnaden kan det vara bra att berätta för dem om hur man berättar skillnaden när du läser dem:

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

Medan den binära kibi- är Ki :
$ 1 \ \ text {KiB (kibibyte)} = 2 ^ {10} \ \ text {bytes} = 1024 \ \ text {byte} $

Jag märker att du använde KB i din fråga för att hänvisa till båda storlekarna; kanske du bör också påpeka att KB kan tolkas som något av dessa prefix (även om Wikipedia föreslår används det oftast istället för KiB). I din position föreslår jag att du klargör vilken du menar om du använder den här notationen.

(Medan du går över förvirrande enheter är en relaterad skillnad i skrivenheter att gemener b är bitar, versaler B är byte; en åttafaldig skillnad är mycket mer signifikant än 2,4%.)

Kommentarer

  • Utöver att bara lära ut båda måste du lära dig att k / kilo kan betyda antingen beroende på sammanhanget / vem ’ använder det. Bara för att kibble finns finns inte ’ t menar att människor gillar eller faktiskt använder det.
  • Om du täcker bitar och byte bör du också åtminstone kort nämna att en ” kilobit ” är nästan alltid 1000 bitar (eftersom nätverk) och en ” kilobyte ” är nästan alltid 1024 byte (eftersom allt -except-for-networking).
  • 1MiB är ≈5% större än 1MB, 1GiB är 7,4% större än 1GB och 1TiB är nära y 10% större än 1 TB.
  • Jag lärde mig alltid att basen är binär, ett 8-bitars ord är en byte, ett 16-bitars ord är två byte och, efter binär konvention 1KB är 1024 byte , 1MB är 1024 KB, 1GB är 1024 MB, 1TB är 1024 GB – och i binär, basenheten för databehandling, är det helt meningsfullt. Jag har alltid tyckt att försöket att använda SI-användning är en felaktig och onödig förvirring. Som sagt, som lärare måste en student förstå förvirringen.
  • ” Ska jag lära mig att 1 KB = 1024 byte eller 1000 byte ? ” Ja. 🙂

Svar

Du borde lära dem att det är ”div

trasslat utan reparation , och det är deras generations jobb att lära ut nästa generation för att använda dumt klingande standardprefix , så att när de äntligen går i pension (och de nuvarande gammalarbetarna tas bort permanent från argumentet), kan äntligen bli en konsensus.

Såsom ärendet är för närvarande är alla prefix oigenkännliga utan sammanhang.En nätverks megabit är $ 10 ^ 6 $ bitar, ett filsystem megabyte är $ 2 ^ {20} $ byte, en hårddisk megabyte är någonstans ganska nära $ 10 ^ 6 $ byte, och en megapixel är ”förmodligen en miljon pixlar, vem bryr sig. ”

Kommentarer

  • Konsensusen verkar vara att diskstorleken är den närmaste enkla approximationen lägre än n × 1000 ^ m. Så 2.057 × 10 ^ 12 byte skulle annonseras som 2 TB, inte 2,1 TB.
  • I ’ Observera att prefixen sällan (i princip aldrig) har sin binära betydelse med andra enheter än byte . En megapixel är 1 miljon pixlar, en megabit är en miljon bitar.
  • Filsystemets megabyte är $ 2 ^ {20} $ byte – kanske. Ibland i samma operativsystem ser du ’ ” megabyte ” (inklusive decimalprecision) är $ 10 ^ 6 $ i några av verktygen och $ 2 ^ {20} $ i andra. Oftast i kommandoradsverktyg jämfört med GUI-verktyg, men jag känner till ett operativsystem där även olika OS-tillhandahållna GUI-verktyg är oense om detta …

Svar

Du måste faktiskt lära dem båda så att de varnas för att användningen inte är konsekvent. Då kan du välja en som standard i din kurs framöver.

Vilket du väljer beror lite på vad du undervisar. Om det är hur man utvärderar hårddiskar etc. fungerar $ K = 1000 $ nu. För de flesta programmeringar är dock förmodligen $ K = 2 ^ {10} = 1024 $ bäst.

Tyvärr beror de dubbla betydelserna troligen på att tillverkare försöker undvika förvirring hos osofistikerade kunder.

Kommentarer

  • Kilobyte myntades långt före 1000 byte kilobyte 1998. IEC gjorde egentligen bara en röra av saker.
  • Ja, men kilo = 1000 går tillbaka till 1795: etymonline.com/word/kilo- Så icke-nördar har kanske någon företräde här, kanske. Men viktigare: Om du lär dem bara en sak som ” rätt sak ” ställer du in dem för förvirring senare. Världen är rörig. Lärare bör inte ’ t låtsas att det inte är ’ t. Att vara dogmatisk är inte ’ t mycket hjälpsam.
  • Även kB / KB hjälper inte ’ t med MB, GB, TB som a) är mycket mer relevanta b) har mycket större skillnader.
  • ” Tyvärr beror de dubbla betydelserna troligen på att tillverkare försöker undvika förvirring i osofistikerade kunders sinnen ” Mer troligt är det annonsörer som vill att deras produkt ska låta större än vad den egentligen är. Varför annonsera en 3 TB hårddisk med rätt 1 TB = 1024 * 1024 * 1024 * 1024 byte när du kan marknadsföra en 3,3 TB hårddisk med den advokatgodkända 1 TB = 1000 * 1000 * 1000 * 1000 byte. 3.3 är större än 3, eller hur?
  • @Readin Eller, som jag ser det oftare, en 3TB-enhet som faktiskt har 2,7 TB totalt lagringsutrymme.

Svar

Skillnaden mellan att ge dina elever en ordentlig diskussion om detta ämne och att helt enkelt lära dem den ena eller den andra , är skillnaden mellan att vara en riktig lärare och att vara en reciterare av factoids.

Om det inte finns någon enda korrekt definition av KB för dig, varför skulle du införa något annorlunda hos dina elever? Svaret på din fråga är således uppenbart i dess bildande. Ditt ansvar som lärare är att förmedla en förståelse för frågan, inte att koka ner det till ett eller annat faktum att du vet att du är mindre än sant.

Kommentarer

  • Jag håller med, men innan jag diskuterar ordentligt med mina elever,

ger jag en ordentlig diskussion här som var min avsikt i första hand ( istället för att få enkla det ena eller det andra svaret).

Svar

Ja Jag håller med andra svar, lär ut båda och noterar också likheten.

Skillnaden

  • $ \ text {ki} = 1024 = 2 ^ {10} $
  • $ \ text {k} = 1000 = 10 ^ 3 $
  • $ \ text {k}, \ text {M}, \ text {G}, \ text {T}, \ text {P} $ används ibland för att betyda $ \ text {ki}, \ text {Mi}, \ text {Gi}, \ text {Ti}, \ text {Pi} $

Likheten

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

Snabbmatematik

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

Detta har en viss likhet och viss skillnad med bas 10-systemet som de (borde) känner till. Först delar vi upp den i block om 10 (istället för 3), resten konverterar vi bara till bas 10, resten är densamma.

Där det används (huvudsakligen)

Det är viktigt att visa var de två systemen används. Medan vissa svar säger att de aldrig har sett det $ 1000 $ -baserade SI-systemet som används i datorer. Det visar sig att SI-systemet används mycket, beroende på vad som mäts.

  • IEC 60027-2 A.2 och ISO / IEC 80000 t.ex. $ \ text {ki} $ :
    • mått på primärt minne: RAM, RAM, cache.
    • mått på filstorlekar , partitionsstorlekar och diskstorlekar inom operativsystemet.
  • SI-enheter t.ex. $ \ text {k} $ :
    • mått på sekundära minnesenheter: hårddiskar, SSD: er.
    • nätverkshastigheter.
    • CPU / minne / busshastigheter.
    • alla andra hastigheter.

Men användningen av symbolen $ \ text {ki} $ används för närvarande inte alltid.


se även https://en.wikipedia.org/wiki/Binary_prefix

Kommentarer

  • Detta svar väcker frågan.
  • @prl Om du menar att undvika frågan (svara på en annan fråga), har du delvis rätt. Jag försöker utöka andra svar. Och att ge några råd om ”Hur”, där frågan var ”Vilken”.
  • IMO är det bästa svaret, men det kan förbättras något genom att uttryckligen nämna stil . Dvs på samma sätt som det finns olika stilar för att citera papper eller för att avgränsa listor (vide Oxford komma), finns det olika stilar för formatering av nummer. I en IEC-publikation efter 2000 kan du anta att husstil kommer att vara SI / * bi. Andra organisationer / utgivare kan använda andra stilar.
  • Ganska bra svar. Två nitpicks: 0) För alla prefix (k, M, Mi, Gi, etc.), använd romersk typ, inte kursiv; Jag föreslår att du använder \text{}. 1) Ki måste ha ett stort K.
  • @Nayuki “Den första bokstaven i varje sådant prefix är därför identisk med motsvarande SI-prefix, förutom ” K ”, som används omväxlande med ” k ”, medan i SI endast den gemener k representerar 1000. ” – sv.wikipedia.org/wiki/Binary_prefix

Svar

Jag har jobbat inom IT professionellt sedan mitten av 1980-talet. Min nuvarande praxis är att skriva vilken av t.ex. KB eller KiB som jag menar vid den tiden, med KB som betyder $ 10 ^ 3 $ och KiB betyder $ 2 ^ {10} $. Om jag pratar om RAM i en maskin skriver jag t.ex. ”64MiB” och om jag talar om den tillverkade och marknadsförda storleken på en hårddisk Jag skriver ”1TB.” Jag är inte men är beredd att använda ord som ”mebibyte” i samtal. Kanske en dag ändrar jag mina verbala förkortningar från t.ex. ”meg” till ”meb” men jag är inte där ännu.

Kommentarer

  • I ’ har aldrig sett, inom en liknande tidsram är MiB etc. som används för RAM. KB / MB / GB / TB som berör RAM är alltid 1024-baserat.
  • Om du ’ använder du versaler K under kilo , du ’ har fel.(Jag har sett människor blanda millimeter med megamolar.)
  • Jag tror att jag ’ d säger / skriver ” binär megabyte ” för MiB än ” mebibyte ”, men förkortningen skulle vara OK .
  • @MontyHarder: Ur ett uttalarsynpunkt, vad sägs om em-byte?
  • @supercat ” em-byte ” låter som en förkortning av megabyte. Det löser därför inte ’ tvetydigheten som MiB gör. Jag tycker att MiB är en användbar förkortning (” i ” infix representerar ” b_i_nary ”), men ordet ” mebibyte ” själv kommer inte smidigt ut ur munnen, om alls.

Svar

Den grundläggande förvirringen finns i notationen på KB (bas 2 härledd) vs kB (SI-enhet) enhetsnivå, och det är bra att förstå ursprunget till användningen av bas 2-härledd enhet.

En dator är en binär maskin.

På grundnivå, minnesadressering är binär. Vanligtvis, på programmatisk nivå, adresseras adresseringen i hexadecimalt format (den var ursprungligen binär); emellertid är hexadecimal också bas 2 härledd (det är bas 16 eller, 2 4 ) och så är det direkt kompatibelt.

Att börja på KB-nivå för att kommunicera förståelse här är användbart eftersom begreppen bas 2 härledda enheter har funnits sedan innan MB var vanligt (ingen skillnad i prefix från SI-enhet).

På en minneskontrollant IC, om du föreställer dig att adressväljare är en rad omkopplare (binära logikgrindar) och beroende på hur de byts får du minnet läst från en specifik adress på datalinjerna. Data lagras och returneras som byte.

Det har alltid funnits ett begränsat antal adressrader tillgängliga för adressminnet, och det händer att användning av binära kompletta adressuppsättningar för ett givet antal adressbitar är basera 2 siffror. Så på en 4KB-maskin finns det 12 adressrader som representerar adresserna 0 till 4095 (4096 byte). Dessa 12 adressrader motsvarar de 111111111111 adresser som är möjliga i binär, 0FFF i hexadecimal eller, 4096 byte i decimal. Det skulle inte vara logiskt att begränsa adressmappning till 4000 byte för decimalkonventionens skull när det finns 12 adressbitar tillgängliga.

Denna logik följde ursprungligen även hårddiskar, där block är grupper av byte som nås av adress (men jag har inte kontrollerat) hör jag att kanske hårddiskleverantörer tycker att det är mindre viktigt att använda ”runda adresseringsformat”, särskilt med tanke på följande.

Alla standardvärden i datorterminologi är bas 2 härledd, även om vissa leverantörer 20MB hårddisk för marknadsföringsändamål kanske inte är så stora som vissa som håller konventionen. Det är bekvämt att slå 20 MB på något även om det inte innehåller så många block och är lättare att tillverka eftersom det krävs mindre datatäthet.

Tidiga IDE-hårddiskar (det fanns andra tidigare system före IDE) , innan det logiska blockadresseringssystemet (LBA) infördes, brukade konfigureras av cylindrar, huvuden och sektorer (CHS). Hela adressystemet var binärt och till och med vanliga Unix-verktyg använde 1024 byteblock för visning. [1] Standardverktyg som Conky använder fortfarande bas 2 för visning av RAM- och hårddiskinformation, men den använder GiB-format för att undvika förvirring. Senare tillät LBA-adresseringssystemet logisk mappning av CHS-formatet eftersom hårddiskstorleken ökade, men LBA tillämpar helt enkelt CHS-formatadresseringen internt i hårddiskens styrenhet ombord och låter OS (och programmeraren) bara överväga de logiska blocken.

Bas 2-logiken följer upp till större siffror, till exempel 11111111111111111111111111111111 byte är 2 GB i standardanvändning eller 7FFFFFFF byte i hexadecimal. men den underliggande tekniken och konventionerna är inte decimaler. Datorer är inte decimala maskiner; de är binära maskiner.

Nätverksadressering använder också binära masker på var och en av miljontals datapaket varje sekund för att säkerställa korrekt routing men, det är lång tid sedan datadelen i ett nätverkspaket har liknat ett basnummer 2. Förmodligen gör det yttersta lagret av paketet fortfarande {antagande}.

Du kommer utan tvekan att behöva nämna att det råder förvirring, särskilt när det gäller marknadsföring av produkter som en viss storlek, och att det finns vissa programitc-implementeringar för att visa värden med hjälp av SI-enheter (det är ingen längre obekvämt eller långsammare {faktiskt är det förmodligen fortfarande långsammare, men på moderna datorer märks det inte längre} för datorprogrammerare att implementera decimaler, särskilt för visning) men det kan inte råder något tvivel om datoranvändning att rätt svar bas 2-konventionen.

1024KB är JEDEC 100B.01 standard vilket betyder att 1KB är 1024 byte.

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

Denna fråga har utforskats utförligt.

SuperUser – Storlek på filer i Windows OS. (Det är KB eller kB?) – https://superuser.com/questions/938234/size-of-files-in-windows-os-its-kb-or-kb

De flesta operativsystem och de allra flesta enheter som hanterar minne / lagring använder prefixen K för Kilo för att betyda 1024 byte, så när jag får RAM som säger att det är en 4 GB-modul vet jag att det är 4 Gibi-Bytes (4 * 1024 * 1024 * 1024) och inte Giga-Bytes (4 * 1000 * 1000 * 1000).


Quora – Var använder vi 1 kB = 1000 byte, 1 MB = 1000 kB, 1 GB = 1000 MB, 1 TB = 1000 GB? Och var använder 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 andra idén formulerades av datorindustrin 1KB = 1024 byte 1MB = 1024 KB 1GB = 1024 MB Obs! Jag använder versaler B och inte små b, och versaler B antyder byte. Små b ska inte användas. Detta är alltid fallet och gäller för saker relaterade till datorer


Den första idén formulerades av telekommunikationsindustrin och är inte tillämplig för datastorlek (bitar och byte) utan för datahastighet (bitar per sekund eller byte per sekund) 1Kbps = 1000 bps (bitar per sekund) 1Mbps = 1024 Kbps 1Gbps = 1024 Mbps Obs! Jag använder små b och inte stora B, och små b innebär bitar. Kapitalet B bör inte användas. Detta är alltid fallet och gäller för saker relaterade till dataöverföring

Kommentarer

Svar

Jag lägger till ett andra svar för att klargöra några problem med frågan och för att rensa den uppenbara förvirringen i svaren.

  1. Frågan anger felaktigt att den länkade IEC-kommunikationen rekommenderar KB att betyda 1000. Länken hänvisar endast till ”kilo”.

  2. kB kan betyda SI-kilobyten, dvs 1000 byte

  3. KB gör och har alltid betydt 1024 byte.

Nummer 3 är i huvudsak den enda användbara definitionen inom programvaruteknik. Observera att K är stort.

Det finns också KiB som motsvarar KB . Observera att kiloordet alltid representeras av små k. För OP att lära KB som 1000 är det alltid fel.

Ovanstående gäller inte MB och högre. Där är användningen tvetydig och beror på kontext.

Kommentarer

  • Observera att även om KB som 1000 kan vara platt fel är det ’ är också nödvändigt för att lära ut att många gör detta fel, och därmed får eleverna aldrig lita på KB för att mena 1024 utan ytterligare kunskap om sammanhanget.
  • @Peter gick 100% överens En bred diskussion om historia och sammanhang på ett sätt som är intressant och underhållande skulle hjälpa till att skilja en medelmåttig från en anständig utbildning.
  • På vilket sätt är nummer 3 ” den enda användbara definitionen ”?
  • @immibis – det sägs vara ” den enda användbara definitionen inom programvaruteknik ”. På grund av den binära naturen hos datorarkitektur och programvara är det ’ förmodligen korrekt. Utanför diskussioner om datorer och särskilt programvara är det troligtvis inte korrekt.
  • @KevinFegan: De enda situationer jag kan tänka mig att använda en stor bokstav K för 1000 borde inte ses som helt enkelt fel om de där en liten ” k ” inte är tillgänglig, t.ex. vissa situationer med skyltning eller begränsade teckenuppsättningar.

Svar

Lär dem att utan sammanhang vet du inte eftersom det verkligen finns människor där ute som kommer att använda k för att betyda 1000 och andra vem kommer att använda k för att betyda 1024. Vilket är rätt är inte relevant eftersom båda användningarna finns där ute.Detta lämnar all användning av ”k” med byte tvetydiga såvida inte den som gav numret också angav vad de menade.

Av denna anledning rekommenderar jag att du lär dig att när du anger ett värde i byte, alltid använda en IEC-prefix som Ki istället. 10 kB är tvetydigt, 10 KiB är inte.

Vi kan förklara att vissa användningar är ”fel” allt vi vill, och jag säger inte att det nödvändigtvis är omotiverat, men det får inte dessa användningar att försvinna.

Kommentarer

  • Sades inte många decimalbaserade datorer nyligen så Kb när det hänvisas till dator är inte ’ t tvetydigt
  • @Neuromancer Huruvida det ’ är tvetydigt eller inte har inget att göra med decimalbaserade datorer …
  • @smithkm Visa mig var k liten k är tvetydig.
  • @Neuromancer Kb betyder … Kanske kb. Åh, hastigheten på telefonmodem som var vanliga fram till början av 2000-talet gavs i kb / s.
  • @rexkogitans Det var Kbps för Kilobits per sekund. Naturligtvis skulle vissa nätverksverktyg skala det till byte och det skulle vara KB / s (vanligtvis något liknande) men modem var Kbps precis som nu kan det vara Mbps eller Gbps (och så vidare). Eller om du ’ är extremt osannolikt ja Kbps. (Kanske skrev vissa det dock som kbps)

Svar

Lär dem båda men fokusera på 1024 i problem. De måste konvertera bandbredd etc i nätverk och andra kurser.

Att konvertera med 1000 är enkelt men 1024 är knepigt så fokusera på det, kunskapen hjälper dem i datorarkitektur, montering och nätverkskurser. De måste jobba med det en dag så gör dem redo

Kommentarer

Svara

De andra svaren ger alla goda skäl för att undervisa att både finns och hur dåligt trasslat den nuvarande situationen är. Detta är viktigt, men det klargör inte vad eleverna föredrar att använda sig själva. Detta svar fokuserar på den praktiska sidan av vad eleverna kan göra; efter att ha lärt sig om den aktuella situationen från de andra svaren.

Antag det värsta fallet

Som med all osäkerhet i datorer är det säkraste alternativet alltid att anta det värsta -scenario. Det vill säga för att minimera risken för att ett felaktigt antagande kommer att orsaka buggar.

I denna situation kan följande tillämpas för att täcka dina baser:

  • Antag mängden resurs du har är i multiplar av 1000 byte.

  • Antag att resurser som används av tredjepartsbibliotek etc. är i multiplar av 1024 byte.

  • Ange siffror för resurser som du använder som multiplar av 1000 byte.

Dessa tre antaganden säkerställer att:

  • I värsta fall tror du att du har mindre resurser än vad du faktiskt har. Om du till exempel antar att 4 kB RAM betyder ”4000 byte” kan du planera att ha 96 färre byte än vad du faktiskt gör. Men det betyder att du aldrig planerar att ha 96 byte mer än vad du faktiskt gör.

  • I värsta fall antar du att biblioteket som sa att det använder 2 kB RAM innebar att det använder 48 bitar mer minne än det faktiskt gör (antar att det betydde 2048, inte 2000). Men du planerar aldrig att använda 48 byte mindre RAM än vad det faktiskt gör.

  • I värsta fall kommer tredje parter att anta att ditt program använder mer resurser än vad det gör, genom att anta att du menade 1024 byte per kB inte 1000. Men du kommer aldrig av misstag att leda någon som tror att den använder mindre än vad den faktiskt gör.

Det är naturligtvis inte perfekt att behöva ” förlorar ”resurser i onödan. Men i allmänhet är det osannolikt att den lilla skillnaden kommer att vara tillräcklig (särskilt som student) för att göra sitt projekt omöjligt. I de specifika fall där det gör borde de redan mäta de exakta fotspåren av allt och antar inte storleken på någonting från dokumentation ensam.

Fördelen är dock att dina antaganden om vad någon annan menade med ”2kB” inte kommer att skada dig när de är fel. Vilket i det här specifika fallet och som en allmän lektion för dina elever – jag tycker är viktigt.

Svar

”Vilken omvandling ska jag undervisa för mina grundstudenter? ”

Är det ingenjörsrelaterade grundnivåer? Om ja, skulle jag ha 1024, baserat på binär matematik eftersom det är vad teknik bygger på.

Du kan räkna bort bitarna på dina fingrar:

  • $ 1 $ finger = $ 2 $ stater, 0 och 1.
  • $ 2,4,8,16,32,64, 128, 256, 512, 1024 $.Det högsta decimalvärdet som kan realiseras är 1 mindre, medan antalet representerade stater är $ 2 ^ x $ -lista.
  • $ 2 ^ 1 -1 = 1 $. Därför 0,1
  • $ 2 ^ 2 – 1 = 3 $. Därför 0,1,2,3
  • $ 2 ^ 3 – 1 = 7 $. Därför 0,1,2,3,4,5,6,7
  • etc. upp till $ 2 ^ 8 – 1 = 255 $. Därför anger 256, från 0 till 255.

Tillverkare kan annonsera som 2.2TB, men operativsystemet rapporterar det som 2TB, eller kanske till och med 2TB användbart.

Kommentarer

  • Felaktigt, tyvärr. Olika operativsystem rapporterar olika. Specifikt de fruktiga.
  • Felaktigt, lyckligtvis. Anständiga operativsystem rapporterar storlekarna korrekt, med GB = 1 miljard byte. De fruktiga startade det.
  • @ gnasher729: Med tanke på att allokeringsenheter är multiplar om 512 byte på nästan varje operativsystem, är det mycket mer meningsfullt för mig att rapportera diskanvändning i enheter på 1024 byte än att rapportera i basera tio enheter.

Svar

Under mina 26 år som professionell programvarutekniker har jag aldrig stött på KB för menar allt annat än 1024.

Lär dem vilka definitioner du vill och se till att de vet att 1024 är den enda användbara.

Kommentarer

  • Kommentarer är inte för längre diskussion; den här konversationen har flyttats till chatt . Diskussion är för chatt, inte för kommentarer, och all ytterligare diskussion i kommentarerna kommer att raderas.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *