专注

导航

字节数组与值类型变量的互相转换,以及注意事项 [转]

   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()方法即可。

posted on 2011-12-02 13:42  陈啊M  阅读(289)  评论(0编辑  收藏  举报