Если байтом является 8-битное целое число, то как мы можем установить его на 255?

Ключевое слово byte обозначает интеграл тип, который хранит значения, как указано в следующей таблице. Это 8-разрядное целое без знака.

Если это всего 8 бит, то как мы можем назначить его равным 255?

byte myByte = 255;

Я думал, что 8 бит - это то же самое, что и один символ?

Ответы

Ответ 1

Символы описываются (в основном смысле) цифровым представлением, которое помещается внутри 8-битной структуры. Если вы посмотрите на ASCII Codes для символов ascii, вы увидите, что они связаны с числами.

Целочисленное число, которое может представлять битовая последовательность, генерируется формулой 2 ^ n - 1 (как частично описано выше @Marc Gravell). Таким образом, 8-разрядная структура может содержать 256 значений, включая 0 (также обратите внимание, что номера TCPIP представляют собой 4 отдельные последовательности из 8-битных структур). Если бы это было целое число со знаком, первый бит был бы значком для знака, а оставшиеся 7 указывали бы значение, поэтому, пока он все еще будет содержать 256 значений, но максимальный и минимальный будут определяться 7 конечными битами (так 2 ^ 7 - 1 = 127).

Когда вы попадаете в символы Unicode и символы "высокий ascii", для кодирования требуется более 8-битная структура. Таким образом, в вашем примере, если бы вы назначили байту значение 76, можно было бы получить справочную таблицу для получения символа ascii v.

Ответ 2

Существует 256 различных конфигураций бит в байте

0000 0000
0000 0001
0000 0010
...
1111 1111

Таким образом, можно присвоить байту значение в диапазоне 0-255

Ответ 3

11111111 (8 бит) - 255: 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1

Возможно, вы путаете это с 256, что составляет 2 ^ 8?

Ответ 4

8 бит (без знака) - от 0 до 255 или (2 ^ 8) -1.

Похоже, вы смешиваете целое число с текстовыми представлениями данных.

Ответ 5

255 = 2 ^ 8 - 1 = FF [hex] = 11111111 [bin]

Ответ 6

Я думал, что 8 бит - это то же самое, что и только один символ?

Я думаю, вы путаете номер 255 со строкой "255".

Подумайте об этом так: если компьютеры хранят номера внутри, используя символы, как бы сохранить эти символы? Используя биты, правильно?

Итак, в этом гипотетическом сценарии компьютер будет использовать биты для представления символов, которые он затем, в свою очередь, использовал для представления чисел. Кроме того, что это ужасно с точки зрения эффективности, это просто избыточно. Биты могут представлять числа напрямую.

Ответ 7

диапазон значений для неподписанных 8 бит - от 0 до 255. Таким образом, это совершенно верно.

8 бит не совпадают с одним символом в С#. В символе С# 16 бит. И даже если символ 8 бит, он не имеет отношения к основному вопросу

Ответ 8

Я думаю, вы смешиваете кодировку символов с фактическим значением интеграла, хранящимся в переменной.

Значение 8 бит может иметь 255 конфигураций, на которые отвечает Arkain
Необязательно, в ASCII каждая из этих конфигураций представляет собой различный символ ASCII
Таким образом, в основном это зависит от того, как вы интерпретируете значение, как целочисленное значение или как символ

Таблица ASCII
Википедия в ASCII

Ответ 9

Конечно, немного поздно ответить, но для тех, кто получает это в поиске Google, здесь мы идем...

Как и другие, персонаж определенно отличается от целого. Будь то 8 бит или нет, это не имеет значения, но я могу помочь, просто указав, как каждый из них работает:

для 8-битного целого числа возможен диапазон значений от 0 до 255 (или -127..127, если он подписан, и в этом случае первый бит определяет полярность)

для 8-битного символа, он скорее всего будет символом ASCII, из которого обычно ссылается индекс, указанный с шестнадцатеричным значением, например. FF или 0A. Поскольку компьютеры в тот же день были только 8-битными, результатом была таблица 16x16, то есть 256 возможных символов в наборе символов ASCII.

В любом случае, если байт имеет длину 8 бит, тогда как ASCII-адрес, так и 8-разрядное целое будут вписываться в переменные данные. Я бы рекомендовал использовать другой более специализированный тип данных, но для простоты. (например, char для ASCII или необработанных данных, int для целых чисел любой длины бита, обычно 32-бит)