假设字节只包含int或float
这是我的理由。
有没有办法知道C#中的字节值是int还是float?
字节可以包含int格式或float格式(符号+指数+分数)。
使用
从字节读取数据
BitConverter.ToInt32和BitConverter.ToSingle有很大的不同。
byte[] src = new byte[4];
// float or int assignment to src bytes
// ...
// ...
// way to know the value is int or float?
if(/* src is int format */)
int valueInt = BitConverter.ToInt32(src, 0);
else
float valueFloat = BitConverter.ToSingle(src, 0);
答案 0 :(得分:0)
"有没有办法知道C#中的字节值是int还是float?" 哎呀!
即使你知道内存中的字节是一个字符串,你也无法阅读甚至定义它们结束而不知道使用了数百种可能的编码: http://www.joelonsoftware.com/articles/Unicode.html
相同的字节可以是有效的位图或我们这个时代最危险的病毒,它取决于它们的解释方式(作为位图或可执行代码)。 Windows中的文件结尾用于定义应该如何解释任何字节集(程序也应该被处理)。很多常见的格式都有一种方法可以识别"作为第一个二进制信息。
携带类型信息和解释所需的其他内容通常是我们通过De(Sertialsiation)传输内容的原因,如XML,JSON等。