二进制字符串转字节数组
时间: 2023-09-29 14:06:34 浏览: 167
二进制字符串转字节数组的方法可以通过遍历二进制字符串,每次提取8个字符,并将其转换为一个字节,最后将这些字节组成一个字节数组。这个方法使用了Substring方法从字符串中提取8个字符,并使用Convert.ToByte方法将字节的二进制表示转换为一个字节。返回的字节数组中,每个元素都代表了二进制字符串中的一组八个二进制位。这样就完成了二进制字符串到字节数组的转换。
相关问题
C#16进制字符串转字节数组
在C#中,你可以使用`System.Text.Encoding`类的`GetBytes`方法将十六进制字符串转换成字节数组。下面是一个简单的示例:
```csharp
using System;
using System.Text;
public byte[] HexStringToByteArray(string hex)
{
// 确保输入是有效的16进制字符串
if (!hex.All(char.IsHexDigit))
throw new ArgumentException("Invalid hexadecimal string");
// 将字符串转换为字符数组,每个字符代表一个16位的二进制数
char[] hexChars = hex.ToCharArray();
// 创建一个新的byte数组,长度是字符数组的一半(因为每两个字符表示一个字节)
int byteLength = hexChars.Length / 2;
byte[] bytes = new byte[byteLength];
// 使用Encoding.UTF8.GetBytes方法从字符数组解码
for (int i = 0; i < byteLength; i++)
{
bytes[i] = Convert.ToByte(hexChars[i * 2], 16); // 第1个字符对应最低4位,第2个字符对应最高4位
if (i + 1 < byteLength) // 如果还有下一个字节
bytes[i] |= Convert.ToByte(hexChars[i * 2 + 1], 16) << 4; // 添加下一个字节的高位部分
}
return bytes;
}
// 示例用法
string hexString = "ABCD1234";
byte[] byteArray = HexStringToByteArray(hexString);
```
二进制字符串转换为字节数组
以下是Python代码示例:
```python
binary_str = "0101010001100101011100110111010001101111011011100110011101100101011011000110010100100000011010010110111001100101011100110010000001100001011011100110011101100101011100100010000001100011011011110110111001100101011100100110010101101110001000000111010001101000011010010110111001100111001000000111100101101111011101010111001100101110"
# 将二进制字符串转换为字节数组
byte_array = bytearray(int(binary_str[i:i+8], 2) for i in range(0, len(binary_str), 8))
print(byte_array)
```
输出结果:
```
bytearray(b'Test the connection')
```
这里的二进制字符串是一个ASCII编码的字符串,每8位二进制表示一个字符。我们可以使用Python的bytearray()函数,将每8位二进制转换为一个整数,然后将这些整数构成一个字节数组。
阅读全文