您的位置:首页 > 编程语言 > C#

(C#基础) byte[] 之初始化, 赋值,转换。

2014-05-21 12:31 435 查看
byte[] 之初始化赋值

用for loop 赋值当然是最基本的方法,不过在C#里面还有其他的便捷方法。

1. 创建一个长度为10的byte数组,并且其中每个byte的值为0.

byte[] myByteArray = new byte[10];


C# 在创建数值型(int, byte)数组时,会自动的把数组中的每个元素赋值为0. (注:如果是string[], 则每个元素为的值为null.

2. 创建一个长度为10的byte数组,并且其中每个byte的值为0x08.

byte[] myByteArray = Enumerable.Repeat((byte)0x08, 10).ToArray();


用linq来赋值,语句只要一条, 当然我们还可以赋值不同的,但是有一定规律的值。

byte[] res= Enumerable.Range(1, 1000).Select(c=>Convert.ToByte(c)).ToArray();


3. 直接赋值

byte[] myByteArray = new byte[] { 0x01, 0x02, 0x03 };


byte[] ---> ushort

byte[] array = new byte[] { 0xFE, 0x00 };

ushort register = BitConverter.ToUInt16(array, 0);


上述转换后register 的值为 0x00FE

byte[] array = new byte[] { 0x02, 0x01 ,0x04, 0x03 };

ushort register = BitConverter.ToUInt16(array, 0);


上述转化后,其实只是取了array[0], array[1].的值,最后register 的值是 0x00010002, 即258

byte[] -> string

public static string ByteArrayToString(byte[] ba)
{
string hex = BitConverter.ToString(ba);
return hex.Replace("-","");
}


ushort ---> byte[]

ushort register = 0x00F0;

byte[] arr = BitConverter.GetBytes(register);


在PC系统里, arr[0] = 0xF0(地位), arr[1] = 0x00 .

互换ushort中的两个字节

ushort number = 0x00F0;

byte[] temp = BitConverter.GetBytes(number);
Array.Reverse(temp);

ushort a = BitConverter.ToUInt16(temp, 0);

ushort b = (ushort)(number << 8 | ((number & 0xFF00) >> 8));


引自: http://www.cnblogs.com/fdyang/archive/2013/10/20/3378974.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: