Najlepsza odpowiedź
65536.
Zauważyłem, że wiele odpowiedzi mówi np. „Możesz przedstawić liczby od 0 do 65535 ”, ale to naprawdę arbitralne. Możesz również przedstawić wszystkie liczby od -5 do 65530 lub wszystkie liczby parzyste od 2 do 131072 lub wszystkie liczby 1, 1/2, 1/3,…, 1/65536. Ale pytanie brzmi: ile odrębnych liczb może być reprezentowanych przez dwa bajty?
Jeśli dwa bajty są używane do reprezentowania liczb, oznacza to, że definiujemy jakąś funkcję odwzorowującą 65536 możliwych odrębnych wartości, które te dwa bajty mogą przyjąć, na liczby, które te wartości reprezentują.
Jeśli ta funkcja jest iniekcyjna, wtedy obraz funkcji ma taki sam rozmiar jak jej dziedzina, więc będzie zawierał 65536 różnych liczb, które można przedstawić. Jeśli funkcja jest nie iniekcyjna (wiele wartości dwóch bajtów jest odwzorowanych na tę samą liczbę), to jej obraz jest mniejszy niż jej domena, więc taki schemat będzie reprezentują mniej niż 65536 różnych liczb.
(Jeden praktyczny scenariusz, w którym może się to zdarzyć, to użycie jednego bitu jako bitu znaku: w takim przypadku często występują dwie różne reprezentacje liczby 0, jeden z ustawionym bitem znaku, a drugi z czystym bitem znaku.)
Odpowiedź
Bajt to zestaw 8 bitów. Jeden bit może mieć wartość 1 lub 0. Na przykład może to być bajt:
11110000
Nazwa systemu liczbowego jest binarna. Możesz przekonwertować dowolną liczbę binarną na dziesiętną za pomocą następującego wzoru:
od prawej do lewej:
(wartość pierwszej cyfry) * 2 ^ 0 + (wartość drugiej cyfry) * 2 ^ 1 + (wartość trzeciej cyfry) * 2 ^ 2 +…
Długość bajtu wynosi 2 ^ 8 = 256, od 0 do 255.
Ale 2 bajty nie ma 512, ponieważ konwersja zawiera więcej cyfr. Dla 2 bajtów mamy 2 ^ 16 = 2 ^ 8 * 2 ^ 8 = 256 * 256 = 65536
Maksymalna wartość to długość – 1. Więc maksymalna wartość to 65535!
Przepraszam za mój słaby angielski 🙂