我有一个UShort变量Temp
,其值为1
。
如何将此值的最高有效位设置为1。
答案 0 :(得分:6)
您使用or
覆盖“最左侧”位:
ushort temp=1;
temp |= 1<<15;
15
是数据类型中的位数(16)减1,因为1
已经位于第1位。
答案 1 :(得分:0)
或者......因为您知道数据类型的大小:
public ushort setHighOrderBit( ushort foo )
{
return foo |= 0x8000 ;
}
[我的坏。没有足够的咖啡这个AM]
答案 2 :(得分:0)
这应该有效:
ushort value = 307;
byte lsb = (byte)(value & 0xFFu);
byte msb = (byte)((value >> 8) & 0xFFu);