将hexa转换为int
本文关键字:int 转换 hexa | 更新日期: 2023-09-27 17:59:12
我正在尝试将字节转换为十六进制并计算校验和。这是我的十六进制字节数组。
byte[] tocrc = { 0xff, 0xff, 0xff, 0xff, 2, 2, 0, 1, 29, 07, 10, 20, 46, 46, 0 };
我需要计算这个数组的校验和。
public static byte calcolacrc(byte[] tocrc)
{
byte crc = 0;
for (int i = 0; i < data.Length; i++)
{
crc += data[i];
}
crc &= 0xff;
return crc;
}
我的问题是,当我将字节与十六进制数相加时:29它是一个整数29的和,而不是不正确的十六进制29。在十进制中,要求和的正确值为41
要将十进制转换为十六进制,我使用以下函数:
value.ToString("X")
我该如何解决这个问题?
您对前4个数字做得很好,只需要将0x
放在每个数字的前面,就可以将其解释为十六进制。
byte[] tocrc = { 0xff, 0xff, 0xff, 0xff, 0x02, 0x02, 0x00, 0x01, 0x29, 0x07, 0x10, 0x20, 0x46, 0x46, 0x00 };
如果想要HEX 29值,请在数组中放入0x29
。请记住,您的数组不是由"十六进制"值组成的——它是由字节组成的数组,十进制或十六进制是唯一的常量语法。