ByteArray的操作总结(复制、打印、位运算)1. 字节数组的复制
Method A:Array.Clone()
Clone返回的是Object对象,需要强类型转换;Clone会创建⼀个新的对象,并将value赋给dec
byte[] src = new byte[20];
byte[] dst= new byte[20];
dst = (byte[])src.Clone();
字符串数组怎么转成byteMethod B: Array.Coby
有多个重载版本
byte[] src = new byte[20]; //原数组
byte[] dst = new byte[20]; //⽬标数组
int srcOffset = 0; //原数组偏移量
int dstOffset = 0; //⽬标数组偏移量
Array.Copy(src, srcOffset, dec, dstOffset, dst.Length);
Method C: Buffer.BlockCopy
该⽅法最为常⽤
byte[] src = new byte[20]; //原缓冲区
byte[] dst = new byte[20]; //⽬标缓冲区
int srcOffset = 0; //src字节偏移量,从0开始
int dstOffset = 0; //dst字节偏移量,从0开始
Buffer.BlockCopy(src, srcOffset, dst, dstOffset, dst.Length);
2. 字节数组的转换
Method A: Print ByteArray
byte[] array = new byte[] { 0x00, 0x01, 0x02, 0x03, 0x04 };
string str = BitConverter.ToString(array);
//str = "00-01-02-03-04"
Method B: Encoding.Default.GetString(byteArray)
将数组中的所有字节解析为应字符串
byte[] array = new byte[] { 0xFE, 0xFE, 0xFE };
string str = Encoding.ASCII.GetString(array);
//str = ""
Method C: 源类型未知
byte[] src = new byte[] { 0xFE, 0xFE, 0xFE };
StreamReader sr = new StreamReader(new MemoryStream(src));
string str = sr.ReadToEnd();
//str = ""
3. 字符串转字节数组: Encoding.Default.GetBytes()
string str = "";
byte[] bytes = Encoding.Default.GetBytes(str);
//bytes = [0xFE, 0xFE, 0xFE, 0xFE]
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论