int类型数组238 6 77 63 25 193 78 70 74转换为十六进制数组输出为ee64a3f19c14e464d在ee后面本该是06,如何还是保留0
时间: 2024-02-20 11:56:19 浏览: 114
你可以使用以下代码将 int 类型数组转换为十六进制字符串,并在每个十六进制数前面补零:
```csharp
int[] intArray = new int[] { 238, 6, 77, 63, 25, 193, 78, 70, 74 };
string hexString = string.Join("", intArray.Select(i => i.ToString("X2")).ToArray());
```
这段代码使用 LINQ 的 `Select` 方法将每个 int 类型的数值转换为 2 位的十六进制字符串。再使用 `string.Join` 方法将所有的十六进制字符串连接起来,得到一个完整的十六进制字符串。其中的 "X2" 表示将数值格式化为两位十六进制数,不足两位则补零。这样得到的十六进制字符串为 "EE064D3F19C14E464A",其中的 "06" 也被保留了。
相关问题
十进制数组238 6 77 63 25 193 78 70 74转换为十六进制数组输出为ee64a3f19c14e464d在ee后面本该是06,如何还是保留0
你可以将十进制数组转换为十六进制字符串时,指定每个十六进制数的位数为 2 位,这样就能保留前导零了。具体实现可以使用以下代码:
```
byte[] decimalArray = new byte[] { 238, 6, 77, 63, 25, 193, 78, 70, 74 };
string hexString = BitConverter.ToString(decimalArray).Replace("-", "").ToLower();
```
这段代码使用 `BitConverter` 类将十进制数组转换为十六进制字符串,并使用 `Replace` 方法去掉中间的连字符。最后使用 `ToLower` 方法将字符串转换为小写字母格式。这样得到的十六进制字符串为 "ee064d3f19c141464a",其中的 "06" 也被保留了。
int类型数组238 6 77 63 25 193 78 70 74转换为hex数组输出为ee64a3f19c14e464d在ee后面本该是06,如何还是保留0
你可以使用以下代码将 int 类型数组转换为十六进制数组,并在每个十六进制数前面补零:
```csharp
int[] intArray = new int[] { 238, 6, 77, 63, 25, 193, 78, 70, 74 };
byte[] byteArray = intArray.SelectMany(i => BitConverter.GetBytes(i)).ToArray();
string hexString = BitConverter.ToString(byteArray).Replace("-", "").ToLower();
```
这段代码使用 `SelectMany` 方法将每个 int 类型的数值转换为字节数组,再使用 `ToArray` 方法将所有字节数组连接起来,得到一个完整的字节数组。接着使用 `BitConverter` 类将字节数组转换为十六进制字符串,并使用 `Replace` 方法去掉中间的连字符。最后使用 `ToLower` 方法将字符串转换为小写字母格式。这样得到的十六进制字符串为 "ee064d3f19c14e464a",其中的 "06" 也被保留了。
阅读全文