C# 如何设置UShort变量的MSB?

C# 如何设置UShort变量的MSB?,c#,C#,我有一个UShort变量Temp,它的值为1 如何将此值的最高有效位设置为1。您可以使用或覆盖“最左边”位: ushort temp=1; temp |=1使用或覆盖“最左边”位: ushort temp=1; temp |=1或…因为您知道数据类型的大小: public ushort setHighOrderBit( ushort foo ) { return foo |= 0x8000 ; } [我的错。今早咖啡不够]或者……因为您知道数据类型的大小: public ushort se

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


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

您可以使用
覆盖“最左边”位:

ushort temp=1;

temp |=1使用
覆盖“最左边”位:

ushort temp=1;

temp |=1或…因为您知道数据类型的大小:

public ushort setHighOrderBit( ushort foo )
{
  return foo |= 0x8000 ;
}

[我的错。今早咖啡不够]

或者……因为您知道数据类型的大小:

public ushort setHighOrderBit( ushort foo )
{
  return foo |= 0x8000 ;
}
[我的错。今早没有足够的咖啡]

这应该可以:

ushort value = 307;
byte lsb = (byte)(value & 0xFFu);
byte msb = (byte)((value >> 8) & 0xFFu);
这应该起作用:

ushort value = 307;
byte lsb = (byte)(value & 0xFFu);
byte msb = (byte)((value >> 8) & 0xFFu);

否,无符号常量将在左侧加零,有符号常量将进行符号扩展。在任何情况下都不会进行右填充。不,无符号常量将在左侧进行零填充,有符号常量将进行符号扩展。在任何情况下都不会发生正确的填充。