C# 将字节[]转换为Int8

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

有没有办法将字节[]转换为int8?我得到了一个二进制文件,其中包含测试的输入参数列表。参数的大小从uint32到uint8不等。我在读取文件时没有问题,但需要技巧的是在GUI中显示值

以下是我所做工作的基础:

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时,它可以工作。谢谢你的帮助。