#c#
#c#
Вопрос:
у меня есть переменная UShort Temp
, которая имеет значение 1
.
Как установить старший бит этого значения равным 1.
Ответ №1:
Вы используете or
для перезаписи «самого левого» бита:
ushort temp=1;
temp |= 1<<15;
Где 15
количество битов в вашем типе данных (16) минус 1, потому что ваш 1
уже находится в позиции 1.
Ответ №2:
Или … поскольку вы знаете размер вашего типа данных:
public ushort setHighOrderBit( ushort foo )
{
return foo |= 0x8000 ;
}
[мой плохой. Недостаточно кофе, это я]
Комментарии:
1. Нет, константа без знака будет дополнена нулем слева, а константа со знаком будет расширена знаком. Ни в коем случае не произойдет правое заполнение.
Ответ №3:
Это должно сработать:
ushort value = 307;
byte lsb = (byte)(value amp; 0xFFu);
byte msb = (byte)((value >> 8) amp; 0xFFu);