举例:char xbuf[18];   
           ret=read_standard(xbuf);
     显示格式:
           xbuf[0]: 指示灯标志位
bit0:表示第一位稳定灯,如为1则稳定灯亮,否则不亮;
bit1:表示第二位零位灯,如为1则零位灯亮,否则不亮;
bit2:表示第三位去皮灯,如为1则零位灯亮,否则不亮;   
           xbuf[1]-xbuf[7]: ASCII码,重量值(Kg),带小数点和正负号
   xbuf[8]: ‘P’,表示皮重的开始位置
xbuf[9]-xbuf[16]: ASCII码,皮量值(Kg),带小数点和正负号我想试着对这个字符数组赋值,
xubf[0]=??怎么对他赋二进制呢?0b111? 比如我三个灯都点亮就是00000111
xbuf[1]=49 是ascii码,表示数字1

解决方案 »

  1.   

    二进制00000111是十进制7
    直接xubf[0]=7就可以了,机器保存的都是二进制,它会自己转换。
      

  2.   

    char xbuf[18]; // 指示灯标志位
    xbuf[0] = 0x00;  // 初始化

    xbuf[0] |= 0x01; // 稳定灯亮
    xbuf[0] |= 0x02; // 零位灯亮
    xbuf[0] |= 0x04; // 去皮灯亮
    //
    xbuf[0] &= ~0x01; // 稳定灯熄
    xbuf[0] &= ~0x02; // 零位灯熄
    xbuf[0] &= ~0x04; // 去皮灯熄
    //
    不管原值是多少,xbuf[0] |= 0x01表示0位置1,xbuf[0] &= ~0x01表示0位置0
    不管原值是多少,xbuf[0] |= 0x02表示1位置1,xbuf[0] &= ~0x02表示1位置0
    不管原值是多少,xbuf[0] |= 0x04表示2位置1,xbuf[0] &= ~0x04表示2位置0