Если байтом является 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-бит)