C# 高,低位字节及多字节转换小结

1.查帖子偶然看到关于多字节转换,随笔记录小结,代码部分:

        private void button1_Click(object sender, EventArgs e)
        {
            //在 C# 中,BitConverter.ToUInt16 方法将按照小端字节序进行解析。
            //因此,在给定字节数组 temp 时,假设其按照小端字节序存储。则 temp[0] 是低位字节,temp[1] 是高位字节。
            //byte[] temp = new byte[] { 0x06, 0x01 };
            byte[] temp = new byte[] { 0x01, 0x06 };//temp[0]-0x01低位字节   ,temp[1]-0x06高位字节   =>综合就是0x0601==>十进制就是1537
            byte[] temp2 = new byte[] { 0x06, 0x01 };//temp[0]-0x06低位字节   ,temp[1]-0x01高位字节   =>综合就是0x0106==>十进制就是262
            pvValue[1] = BitConverter.ToUInt16(temp, 0);
            pvValue[2] = BitConverter.ToUInt16(temp2, 0);
            MessageBox.Show($"{pvValue[1]},{pvValue[2]}");

            //var shi1 = Convert.ToInt32("0x0601");//Wrong
            //在 C# 中,可以使用 Convert.ToInt32 方法将十六进制字符串转换为整数,例如:
            string hexString = "0x0601";
            int decimalValue = Convert.ToInt32(hexString, 16);
            //这个例子中,hexString 是要转换的十六进制字符串,16 是基数参数,表示将字符串视为十六进制数。转换结果将存储在 decimalValue 变量中。
            //需要注意的是,如果输入的字符串不是有效的十六进制格式,将会抛出异常。因此,在使用这个方法时,需要确保输入的字符串是一个有效的十六进制数。

            var shi2 = Convert.ToInt32(0x0106);
        }

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CRC(Cyclic Redundancy Check)校验是一种常用的数据校验方法,用于检测数据传输过程中是否发生错误。在C#中,可以通过使用位运算来实现CRC校验。 CRC校验通常分为两种方式:字节优先(Big-Endian)和低位字节优先(Little-Endian)。下面分别介绍这两种方式的实现方法: 1. 字节优先(Big-Endian): 在字节优先的CRC校验中,先处理字节,再处理低位字节。具体步骤如下: - 定义一个CRC多项式,例如0x1021。 - 初始化一个16位的寄存器为0xFFFF。 - 对每个字节进行以下操作: - 将寄存器的8位与当前字节进行异或运算。 - 循环8次,每次进行以下操作: - 如果寄存器的最位为1,则将寄存器左移一位,并与CRC多项式进行异或运算。 - 否则,将寄存器左移一位。 - 最后得到的寄存器值即为CRC校验结果。 2. 低位字节优先(Little-Endian): 在低位字节优先的CRC校验中,先处理低位字节,再处理字节。具体步骤如下: - 定义一个CRC多项式,例如0x1021。 - 初始化一个16位的寄存器为0xFFFF。 - 对每个字节进行以下操作: - 将寄存器的低8位与当前字节进行异或运算。 - 循环8次,每次进行以下操作: - 如果寄存器的最低位为1,则将寄存器右移一位,并与CRC多项式进行异或运算。 - 否则,将寄存器右移一位。 - 最后得到的寄存器值即为CRC校验结果。 以上是C#中实现CRC校验的基本步骤,具体实现可以根据具体需求进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值