C# 将字节[]转换为Int8
有没有办法将字节[]转换为int8?我得到了一个二进制文件,其中包含测试的输入参数列表。参数的大小从uint32到uint8不等。我在读取文件时没有问题,但需要技巧的是在GUI中显示值 以下是我所做工作的基础:C# 将字节[]转换为Int8,c#,C#,有没有办法将字节[]转换为int8?我得到了一个二进制文件,其中包含测试的输入参数列表。参数的大小从uint32到uint8不等。我在读取文件时没有问题,但需要技巧的是在GUI中显示值 以下是我所做工作的基础: private Byte[] blockSize; private Byte[] binSize; FileStream filen = File.OpenRead(file); BinaryReader br = new BinaryReader(filen); blockSize
private Byte[] blockSize;
private Byte[] binSize;
FileStream filen = File.OpenRead(file);
BinaryReader br = new BinaryReader(filen);
blockSize = br.ReadBytes(4);
binSize = br.ReadBytes(1);
考虑到参数文件的前32位(4字节)是blockSize,接下来的8位(1字节)是my binSize变量的值,这一点没有问题。问题在于如何显示它
textBox1.Text = BitConverter.ToInt32(blockSize, 0).ToString();
textBox2.Text = BitConverter.ToString(binSize, 0).ToString();
假设我的二进制输入文件包含以下5个字节的数据“0A0000A”。我的第一个文本框显示“10”,第二个文本框显示“0A”。我想把十六进制值转换成更容易理解的十进制值。只要输入文件中的参数大于1字节,它就可以正常工作,因此我可以使用ToInt16或ToInt32轻松地将其转换,但我没有8位的版本 您的问题是
r.ReadBytes(1)
返回byte[]
然后调用位转换器.ToString(bytearray)
,其中byte数组作为参数,执行以下操作:
转换指定数组中每个元素的数值
字节转换为其等效的十六进制字符串表示形式
BinaryReader
具有方法
int ReadInt32()
byte ReadByte()
将blockSize
的类型更改为int
,将binSize
的类型更改为byte
,并使用这些方法
int blockSize = br.ReadInt32();
byte binSize = br.ReadByte();
textBox1.Text = blockSize.ToString();
textBox2.Text = binSize.ToString();
来自MSDN:ReadInt32()
从当前流中读取一个4字节有符号整数,并将
流的当前位置减少了四个字节
ReadByte()
从当前流读取下一个字节,并使当前
将流的位置减少一个字节
您的问题是
r.ReadBytes(1)
返回byte[]
然后调用位转换器.ToString(bytearray)
,其中byte数组作为参数,执行以下操作:
转换指定数组中每个元素的数值
字节转换为其等效的十六进制字符串表示形式
BinaryReader
具有方法
int ReadInt32()
byte ReadByte()
将blockSize
的类型更改为int
,将binSize
的类型更改为byte
,并使用这些方法
int blockSize = br.ReadInt32();
byte binSize = br.ReadByte();
textBox1.Text = blockSize.ToString();
textBox2.Text = binSize.ToString();
来自MSDN:ReadInt32()
从当前流中读取一个4字节有符号整数,并将
流的当前位置减少了四个字节
ReadByte()
从当前流读取下一个字节,并使当前
将流的位置减少一个字节
这怎么可能呢?字节[]转换为int8?什么是int8?没有这样的东西。int8=Byte。字节[]转换成字节?天哪。@viveknuna,如果字节数组只有一个元素,这是可能的:)这怎么可能呢?字节[]转换为int8?什么是int8?没有这样的东西。int8=Byte。字节[]转换成字节?Omg@viveknuna,如果字节数组只有一个元素,这是可能的:)好的,我的问题是我使用的是ReadBytes(1)而不是ReadByte()。当我试图将ReadBytes(1)存储为字节时,我得到了一个错误,但当使用ReadByte时,它可以工作。谢谢你的帮助。好的,我的问题是我使用的是ReadBytes(1)而不是ReadByte()。当我试图将ReadBytes(1)存储为字节时,我得到了一个错误,但当使用ReadByte时,它可以工作。谢谢你的帮助。