Hány számot tud képviselni 2 bájttal?


Legjobb válasz

65536.

Sok olyan választ veszek észre, hogy „képviselhet számok 0-tól 65535-ig ”, de ez valóban önkényes. Képviselheti az összes számot -5 és 65530 között, vagy az összes páros számot 2 és 131072 között, vagy az összes számot 1, 1/2, 1/3,…, 1/65536. De az a kérdés, hogy hány különböző számot lehet két bájttal képviselni?

Ha két bájtot használunk a számok ábrázolásához, ez azt jelenti, hogy meghatározunk néhány függvényt, amely leképezi a 65536 lehetséges különálló értéket, amelyet ez a két bájt felvehet, azokra a számokra, amelyeket ezek az értékek képviselnek. ez a függvény injektív, akkor a függvény képe azonos méretű, mint a tartománya, így 65536 különálló ábrázolható számot tartalmaz. Ha a függvény nem injektív (a két bájt több értéke ugyanarra a számra képződik), akkor a képe kisebb, mint a tartománya, így egy ilyen séma kevesebb, mint 65536 különálló számot képvisel.

(Az egyik gyakorlati forgatókönyv, amelyben ez megtörténhet, ha egy bitet előjelbitként használunk: ilyen esetben gyakran két különböző ábrázolás létezik a 0 számra, az egyikben az előjelbit be van állítva, a másikban pedig az előjel bit tiszta.)

Válasz

A bájt 8 bites halmaz. Egy bit lehet 1 vagy 0. Például egy bájt lehet:

11110000

A számrendszer neve bináris. Bármely bináris számot tizedesre konvertálhatja a következő képlettel:

jobbról balra:

(első számjegy értéke) * 2 ^ 0 + (második számjegyű érték) * 2 ^ 1 + (harmadik számjegyű érték) * 2 ^ 2 +…

A bájt hossza 2 ^ 8 = 256, 0-tól 255-ig.

De, 2 bájt nem 512, mert az átalakítás több számjegyet tartalmaz. 2 bájtra 2 ^ 16 = 2 ^ 8 * 2 ^ 8 = 256 * 256 = 65536

A maximális érték a hossz – 1. Tehát a maximális érték 65535!

Elnézést a rossz angol nyelvért 🙂

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük