字符串INT以字节

问题描述:

您好我需要读取Excel单元格中的int和一个字节的发送,但是当我用这个代码做到这一点:字符串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); 

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

我对不对?如果是的话该怎么办?由于

+6

你的问题很不清楚,你的代码很可能是错的。你想达到什么目的? – SLaks

+1

如果您只有一个字节可用,那么您将能够表示的最大可能数字为255(假设为无符号整数)。 –

+0

我有一个excel文件,其中包含一些具有整数值的单元格。我想读取excel并发送到串口,所以我需要将它们转换为字节。我从excel中读取没有任何问题,并发送到串口没有问题。我使用'GetBytes()',它给了我两个字节的整数12但我想发送一个字节。怎么做? – user2628363

,你都可以从字符的字节不能例如,如果你有dataRow[3] = 12 那么整数 你的情况,你会得到你看到的1和2的字节。

你需要使用 BitConverter.GetBytes(Int.Parse(dataRow[3].ToString())); 田间

所以你必须对所有的领域做到这一点,然后再结合阵列。 你可以使用System.Buffer.BlockCopy。 在this article也有一些例子,说明如何做到这一点

我认为转换Byte.Parse()可能是你在找什么:http://msdn.microsoft.com/en-us/library/4eszwye3.aspx

如果调用GetBytes字符串12你会得到两个字节:'1'和和'2'。如果你想得到一个值为12的字节,你必须首先将字符串转换为整数,然后得到它的字节。有不同的方法来解析字符串中的整数(其中两个是int.Parse()int.TryParse())。