字节数组与值类型变量的互相转换,以及注意事项 [转]
1: byte[] bytes = { 25, 0, 0, 1, 0, 0, 0, 1 };
2: int numInt = BitConverter.ToInt32(bytes, 0);
3: short numShort = BitConverter.ToInt16(bytes, 0);
4: long numLong = BitConverter.ToInt64(bytes, 0);
5: Console.WriteLine(“int: {0}”, numInt);
6: Console.WriteLine(“short: ” + numShort);
7: Console.WriteLine(“long: ” + numLong);
8: bytes = BitConverter.GetBytes(numLong);
转换时需要注意字节数组的长度,该长度必须大于等于要转换的数值类型变量所占的字节数,如:要将字节数组转换为int,则该数组必须至少包含有4个字节项,要转换为long,则该数组必须至少包含8个字节项。BitConverter执行数值转换时,若转换为int型,则会从指定的起始索引开始,从数组中取4个字节出来转换为int,若转换为long型,则会从指定的起始索引开始,从数组中取8个字节出来转换为long。若数组的项数不足,则在用BitConverter.ToInt时,会引发System.ArgumentException,报“目标数组长度不足”的异常。
C#将值类型变量转换为字节数组时,只需调用BitConverter.GetBytes()方法即可。