Как преобразовать число в байт?

В C и C ++ вы можете сообщить компилятору, что число является «длинным», поставив «l» в конце числа. например, long x = 0l;

Как я могу сказать компилятору C #, что число является байтом?


person Robert    schedule 30.09.2008    source источник
comment
Мне нравятся ответы, но преобразование числа в байт - это то же самое, что объявление числа как байта?   -  person Robert    schedule 30.09.2008


Ответы (5)


Согласно спецификации языка C # нет возможности для указания байтового литерала. Вам нужно будет привести к байту, чтобы получить байт. Лучше всего, вероятно, указать в шестнадцатеричном формате и отбросить, например:

byte b = (byte) 0x10;
person Douglas Mayle    schedule 30.09.2008
comment
(byte) не играет роль? Или правда, что требуется хотя бы какое-то время? - person Pacerier; 20.01.2012

byte b = (byte) 123; 

Несмотря на то

byte b = 123;

делает то же самое. Если у вас есть переменная:

int a = 42;
byte b = (byte) a;
person Sklivvz    schedule 30.09.2008
comment
Целочисленный литерал будет неявно преобразован из int в байтовый, поэтому вам не нужно ставить (байтовое) приведение перед числом. На случай, если кто-то упустил логику из приведенного выше примера. - person Ailayna Entarria; 25.09.2014

Помните, если вы это сделаете:

byte b = (byte)300;

это не будет работать так, как вы ожидаете.

person casademora    schedule 30.09.2008
comment
Правдивость этого утверждения зависит от моих ожиданий ;-) - person phoog; 06.12.2011
comment
@casademora, расскажи об этом, например, какой будет результат? - person Pacerier; 20.01.2012
comment
Байт может хранить только числа от 0 до 255 (1111 1111 = 255). Это число не может храниться в одном байте, поэтому оно будет усечено до одного байта. - person Thibaut D.; 01.07.2015

MSDN использует неявное преобразование. Я не вижу суффикс типа байта , но вы можете использовать явное приведение. Я бы просто использовал константу с 2-значным шестнадцатеричным целым числом (int).

person aib    schedule 30.09.2008

Не нужно сообщать компилятору. Вы можете присвоить байтовой переменной любое допустимое значение, и компилятор с этим справится: нет суффикса для байта.

Если вы хотите сохранить байт в объекте, вам необходимо выполнить приведение:

object someValue = (byte) 123;
person VVS    schedule 30.09.2008