【发布时间】:2017-06-27 08:19:06
【问题描述】:
我有一个 byte 数组,由 50 字节组成,将 5 整数表示为 ascii 字符值。每个整数值都表示为10 字节:
byte[] receiveBytes = new byte[] {
20, 20, 20, 20, 20, 20, 20, 20, 20, 49, // 9 spaces then '1'
20, 20, 20, 20, 20, 20, 20, 20, 20, 50, // 9 spaces then '2'
20, 20, 20, 20, 20, 20, 49, 50, 51, 52, // 6 spaces then '1' '2' '3' '4'
20, 20, 20, 20, 20, 20, 53, 56, 48, 49, // 6 spaces then '5' '8' '0' '1'
20, 20, 20, 20, 20, 20, 20, 57, 57, 57}; // 7 spaces then '9' '9' '9'
请注意,20 是 space 的 ascii 代码,[48..57] 是 0..9 数字的 ascii 代码。
如何将字节数组转换为整数数组 (int[] intvalues == [1, 2, 1234, 5801, 999])?
我首先尝试将字节数组转换为字符串,然后将字符串转换为整数,如下所示:
string[] asciival = new string[10];
int[] intvalues = new int[5];
Byte[] receiveBytes = '20202020202020202049 //int value = 1
20202020202020202050 //int value = 2
20202020202049505152 //int value = 1234
20202020202053564849 //int value =5801
20202020202020575757';//int value = 999
asciival[0] = Encoding.ASCII.GetString(receiveBytes, 0, 10);
asciival[1] = Encoding.ASCII.GetString(receiveBytes, 10, 10);
intvalues[0] = int.Parse(asciival[0]);
intvalues[1] = int.Parse(asciival[1]);
但是没有更简单的方法可以将字节数组复制到字符串数组中吗?
【问题讨论】:
-
如何制作 10 字节宽的
int?sizeof(int) == 4
标签: c#