byte[] qsf = new byte[] { 0xFE, 0xFE };//起始符
byte[] zt = new byte[] { 0x05 };//帧头
byte[] dz = new byte[] { 0x00 };//地址
byte[] zl = new byte[] { 0x01 };//指令
byte[] sj = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };//数据
byte[] jyh = new byte[] { 0x00 };//校验和
byte[] jsf = new byte[] { 0xAA, 0x0D, 0x0A };//结束符
byte[] jyh = new byte[] { 0x00 };//校验和
jyh[0] = (byte)((dz[0] + zl[0] + sj[0] + sj[1] + sj[2] + sj[3] + sj[4] + sj[5]) % 256);//校验和
这里的和是求校验和的,我要问的是为什么要除256呢,如果是取进制的后两位,那么是怎么实现的呢?
byte[] zt = new byte[] { 0x05 };//帧头
byte[] dz = new byte[] { 0x00 };//地址
byte[] zl = new byte[] { 0x01 };//指令
byte[] sj = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };//数据
byte[] jyh = new byte[] { 0x00 };//校验和
byte[] jsf = new byte[] { 0xAA, 0x0D, 0x0A };//结束符
byte[] jyh = new byte[] { 0x00 };//校验和
jyh[0] = (byte)((dz[0] + zl[0] + sj[0] + sj[1] + sj[2] + sj[3] + sj[4] + sj[5]) % 256);//校验和
这里的和是求校验和的,我要问的是为什么要除256呢,如果是取进制的后两位,那么是怎么实现的呢?
可以用 >> 8 取得前 24 位
用 & FF 取得最后8位,或者 & 4 取得最后2位