using System;
using System.Text;
namespace Wit.SDK.Utils
{
///
/// 字节数组转换工具类
///
public class ByteArrayConvert
{
///
/// byte数组转string
///
///
///
public static string ByteArrayToString(byte[] data)
{
return Encoding.Default.GetString(data);
}
///
/// string转 byte数组
///
///
///
public static byte[] StringToByteArray(string data)
{
return Encoding.Default.GetBytes(data);
}
///
/// byte数组转16进制字符串
///
///
///
public static string ByteArrayToHexString(byte[] data)
{
if (data == null) { return ""; }
StringBuilder builder = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
builder.Append(string.Format("{0:X2} ", data[i]));
}
return builder.ToString().Trim();
}
///
/// 16进制字符串转byte数组
///
///
///
public static byte[] HexStringToByteArray(string data)
{
string[] chars = data.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
byte[] returnBytes = new byte[chars.Length];
//逐个字符变为16进制字节数据
for (int i = 0; i < chars.Length; i++)
{
returnBytes[i] = Convert.ToByte(chars[i], 16);
}
return returnBytes;
}
///
/// byte数组转10进制字符串
///
///
///
public static string ByteArrayToDecString(byte[] data)
{
StringBuilder builder = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
builder.Append(data[i] + " ");
}
return builder.ToString().Trim();
}
///
/// 10进制字符串转byte数组
///
///
///
public static byte[] DecStringToByteArray(string data)
{
string[] chars = data.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
byte[] returnBytes = new byte[chars.Length];
//逐个字符变为10进制字节数据
for (int i = 0; i < chars.Length; i++)
{
returnBytes[i] = Convert.ToByte(chars[i], 10);
}
return returnBytes;
}
///
/// byte数组转八进制字符串
///
///
///
public static string ByteArrayToOtcString(byte[] data)
{
StringBuilder builder = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
builder.Append(Convert.ToString(data[i], 8) + " ");
}
return builder.ToString().Trim();
}
///
/// 八进制字符串转byte数组
///
///
///
public static byte[] OtcStringToByteArray(string data)
{
string[] chars = data.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
byte[] returnBytes = new byte[chars.Length];
//逐个字符变为8进制字节数据
for (int i = 0; i < chars.Length; i++)
{
returnBytes[i] = Convert.ToByte(chars[i], 8);
}
return returnBytes;
}
///
/// 二进制字符串转byte数组
///
///
///
public static byte[] BinStringToByteArray(string data)
{
string[] chars = data.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
byte[] returnBytes = new byte[chars.Length];
//逐个字符变为2进制字节数据
for (int i = 0; i < chars.Length; i++)
{
returnBytes[i] = Convert.ToByte(chars[i], 2);
}
return returnBytes;
}
///
/// byte数组转二进制字符串
///
///
///
public static string ByteArrayToBinString(byte[] data)
{
StringBuilder builder = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
builder.Append(Convert.ToString(data[i], 2) + " ");
}
return builder.ToString().Trim();
}
}
}