我不确定为什么会得到它...为什么有任何想法?
代码:
data[i] = Convert.ToByte(build, 16);
其中build
是值为{strong> 0x255 的string
,例如,其他转换对我 0x04 来说很好。它只是停留在那个值上
答案 0 :(得分:3)
您正在混合十进制和十六进制:
0xFF (hex) == 255
0x255 (hex) == 597 which is beyond byte range [0..255]
请注意
0x04 (hex) == 4 and that's why you have a correct result
在您的情况下,代码应为
// build == "255" and build is decimal
data[i] = Convert.ToByte(build, 10);
或
// build is hexadecimal, but "0x255" is an incorrect value
build = "0xFF";
...
data[i] = Convert.ToByte(build, 16);
答案 1 :(得分:0)
十六进制值从0x00
到0xFF
(0-255)。
因此0x255
不作为字节存在。您正在寻找的值而不是0x255
是0xFF
。