问题是我正在尝试分析二进制文件。 然后我有点卡住如何将int转换为值大于255的字节 例如,我有0x17b,如何将其作为文件中的字节纠正?
在检查二进制文件时,我注意到0x17b等于0xfb 0x02(以字节为单位) 这是怎么发生的?
在我尝试过的C#中
Convert.ToByte(search.Length)
它给出错误,并且错误不能转换为字节,因为其中包含255个以上的值,因为字节中的较高字节为ff
这是另一个可供参考的例子
0x107 = 0x87 0x02 (in bytes)
0x17B = 0xFB 0x02 (in bytes)
0xAD = 0xAD 0x01 (in bytes)
答案 0 :(得分:0)
您不能将大于255的值转换为字节,因为这是可以存储在单个字节中的最大值。您要做的是转换为字节数组。
为此,您可以使用BitConverter
来完成这项工作:
int bigValue = 0x17b;
byte[] bytes = BitConverter.GetBytes(bigValue);
由于int
在这里是4个字节,因此最终得到的是7B 01 00 00
作为该值的字节表示。