赖珊 发表于 2025-6-8 22:52:55

C#关于byte的操作说明

获取byte中每一位的值
byte byData = 0x36;

int n0, n1, n2, n3, n4, n5, n6, n7;
n0 = (byData & 0x01) == 0x01 ? 1 : 0;
n1 = (byData & 0x02) == 0x02 ? 1 : 0;
n2 = (byData & 0x04) == 0x04 ? 1 : 0;
n3 = (byData & 0x08) == 0x08 ? 1 : 0;
n4 = (byData & 0x10) == 0x10 ? 1 : 0;
n5 = (byData & 0x20) == 0x20 ? 1 : 0;
n6 = (byData & 0x40) == 0x40 ? 1 : 0;
n7 = (byData & 0x80) == 0x80 ? 1 : 0;获取int16中其中某几位的数值
bit内容 11-15预留 10值7 6-9值6 5值5 4值4 3值3 2值2 0-1值1 <br>      /// <param name="val"></param>
      public virtual void SetValue(UInt16 val)
      {
            Fac = (Enmus.FactoryDebugStatus)(val & 0x03);
            Fligh = (Enmus.FlyLock)((val & 0x04));
            Remoti = (Enmus.RemotingLock)(val & 0x08);
            Air = (Enmus.AirCtrl)((val & 0x10));
            Alt = (Enmus.AltHold)((val & 0x20));
            Vertl = (Enmus.VerticalCtrl)(((val >> 6) & 0x0F));
            Engin= (Enmus.Start_StopState)((val & 0x400));   
      }<br>      

public UInt16 ToByte()
      {
            UInt16 ret = 0x00;
            ret = (UInt16)(ret | ((UInt16)Waypoint
页: [1]
查看完整版本: C#关于byte的操作说明