Hur många nummer kan du representera med 2 byte?


Bästa svaret

65536.

Jag märker att många svar säger saker som ”du kan representera siffror från 0 till 65535 ”, men det är verkligen godtyckligt. Du kan också representera alla nummer från -5 till 65530 eller alla jämna nummer från 2 till 131072, eller alla nummer 1, 1/2, 1/3,…, 1/65536. Men frågan är hur många distinkta siffror kan representeras av två byte?

Om två byte används för att representera siffror, betyder det att vi definierar någon funktionskarta för 65536 möjliga distinkta värden som dessa två byte kan ta till de siffror som dessa värden representerar.

den funktionen är injektiv, då har bilden av funktionen samma storlek som dess domän, så den kommer att innehålla 65536 distinkta nummer som kan representeras. Om funktionen är inte injektiv (flera värden för de två byten mappar till samma nummer), är dess bild mindre än domänen, så ett sådant schema kommer att representerar färre än 65536 distinkta nummer.

(Ett praktiskt scenario där detta kan hända är om en bit används som en teckenbit: i ett sådant fall finns det ofta två olika representationer av numret 0, en med teckenbituppsättning och en med teckenbit klar.)

Svar

En byte är en uppsättning på 8 bitar. En bit kan vara 1 eller 0. En byte kan vara, till exempel:

11110000

Namnsystemets namn är binärt. Du kan konvertera valfritt binärt tal med ett decimal med hjälp av denna formel:

från höger till vänster:

(första siffrans värde) * 2 ^ 0 + (andra siffrans värde) * 2 ^ 1 + (tredje siffervärde) * 2 ^ 2 +…

Längden på en byte är 2 ^ 8 = 256, från 0 till 255.

Men, 2 byte inte är 512, eftersom konverteringen innehåller fler siffror. För 2 byte har vi 2 ^ 16 = 2 ^ 8 * 2 ^ 8 = 256 * 256 = 65536

Maximivärdet är längden – 1. Så maxvärdet är 65535!

Ledsen för min dåliga engelska 🙂

Lämna ett svar

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