Hoeveel getallen kun je vertegenwoordigen met 2 bytes?


Beste antwoord

65536.

Ik merk dat veel antwoorden dingen zeggen als: “je kunt vertegenwoordigen nummers van 0 tot 65535 ”, maar dat is echt willekeurig. U kunt ook alle nummers van -5 tot 65530 of alle even nummers van 2 tot 131072 of alle nummers 1, 1/2, 1/3,…, 1/65536 weergeven. Maar de vraag is: hoeveel verschillende nummers kunnen worden weergegeven door twee bytes?

Als twee bytes worden gebruikt om getallen weer te geven, betekent dit dat we een functie definiëren die de 65536 mogelijke verschillende waarden die die twee bytes kunnen aannemen, toewijst aan de getallen die deze waarden vertegenwoordigen.

Als die functie is injectief, dan heeft de afbeelding van de functie dezelfde grootte als het domein, dus het bevat 65536 verschillende getallen die kunnen worden weergegeven. Als de functie niet injectief is (meerdere waarden van de twee bytes verwijzen naar hetzelfde nummer), dan is de afbeelding kleiner dan het domein, dus een dergelijk schema zal vertegenwoordigen minder dan 65536 verschillende getallen.

(Een praktisch scenario waarin dit kan gebeuren, is als een bit wordt gebruikt als tekenbit: in dat geval zijn er vaak twee verschillende weergaven van het getal 0, een met het tekenbit ingesteld en een met het tekenbit vrij.)

Antwoord

Een byte is een set van 8 bits. Een bit kan 1 of 0 zijn. Een byte kan bijvoorbeeld zijn:

11110000

De naam van het nummerstelsel is binair. U kunt met deze formule een binair getal converteren naar een decimaal getal:

van rechts naar links:

(eerste cijferwaarde) * 2 ^ 0 + (tweede cijferwaarde) * 2 ^ 1 + (derde cijferwaarde) * 2 ^ 2 +…

De lengte van een byte is 2 ^ 8 = 256, van 0 tot 255.

Maar, 2 bytes dont zijn 512, omdat de conversie meer cijfers bevat. Voor 2 bytes hebben we 2 ^ 16 = 2 ^ 8 * 2 ^ 8 = 256 * 256 = 65536

De maximale waarde is de lengte – 1. Dus de maximale waarde is 65535!

Sorry voor mijn slechte Engels 🙂

Geef een reactie

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