字符串到Int到字节

时间:2013-08-05 20:01:12

标签: c#

嗨我需要从excel单元读取一个int并以一个字节发送它,但当我使用此代码时:

cert1 = Encoding.Default.GetBytes(
    "write" + flg + 
    dataRow[3].ToString() + 
    dataRow[4].ToString() + 
    dataRow[5].ToString().Substring(0,4) + 
    dataRow[5].ToString().Substring(5,2) + 
    dataRow[5].ToString().Substring(8,2) + 
    dataRow[6].ToString() + 
    dataRow[7].ToString() + 
    dataRow[8].ToString() + 
    dataRow[10].ToString().Substring(0, 4) + 
    dataRow[10].ToString().Substring(5, 2) + 
    dataRow[10].ToString().Substring(8, 2) + 
    dataRow[11].ToString());
comport.Write(cert1, 0, cert1.Length);

并调试它,我在excel单元格中获得了12个字节。这意味着它将12视为字符串并将1作为一个字节返回,将2作为另一个字节返回。我假设我需要使用这个Int.Parse()将12看作一个int并将其转换为二进制,然后转换为byte。

我是对的吗?如果是的话怎么办?谢谢

3 个答案:

答案 0 :(得分:1)

我认为转化Byte.Parse()可能就是您所寻找的:http://msdn.microsoft.com/en-us/library/4eszwye3.aspx

答案 1 :(得分:1)

你从字符中得到的字节不是整数 例如,如果你有dataRow[3] = 12 那么在你的情况下,你会得到1和2的字节,如你所见。

你需要使用 BitConverter.GetBytes(Int.Parse(dataRow[3].ToString())); 对于该领域

所以你必须为所有字段执行此操作,然后组合数组。 您可以使用System.Buffer.BlockCopy。 在this article中有一些例子如何做到

答案 2 :(得分:0)

如果您为字符GetBytes拨打12,您将获得两个字节:'1''2'。如果要获取值为12的字节,则必须先将字符串转换为整数,然后获取其字节。解析字符串中的整数有不同的方法(int.Parse()int.TryParse()是其中两个)。