C#byte数组获取每一位值
阅读原文时间:2023年08月15日阅读:1

获取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

 

    /// <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));  
    }

表27飞机控制状态说明

Bit

内容

类型

初始值

说明

11~15

预留

R

0

10

发动机控制

R

0

0:停车

1:起车

6~9

垂向控制

R

0

2:二维平飞

3:三维平飞(保持当前高度飞行)

4:三维飞行(按目标高度上升下降飞行)

5

定高模式

R

0

0:无效

1:有效

4

空速控制

R

0

0:空速控制无效

1:空速控制有效

3

遥控解锁

R

0

0:遥控锁定

1:遥控解锁

2

飞行锁定

R

0

0:飞机锁定(飞行状态)

1:飞机解锁(地面调试状态)

0~1

飞控模式

R

0

0:正常模式

1:油门标定模式

2:油门验证模式

3:系留耐久模式