如何设置UShort变量的MSB?

时间:2011-05-31 16:56:58

标签: c#

我有一个UShort变量Temp,其值为1

如何将此值的最高有效位设置为1。

3 个答案:

答案 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);