日期:2014-05-18  浏览次数:20817 次

怎样把一个int32的数字转换成byte[]
怎样把一个int32的数字转换成byte[]?
我用System.BitConverter.GetBytes();
但结果是3变成30 00 00 00,而我想要的是00 00 00 03。

求教?

------解决方案--------------------
结果就是00 00 00 03
你读反了
------解决方案--------------------
在内存中,数字的存储就是从低位开始的
这样转换起来很方便
BatchFile code
int   03 00 00 00
short[03 00]00 00
byte [03]00 00 00

------解决方案--------------------
Convert里有,要不然自己>> 移位转 03000000 0000003 只是取决于移位的顺序 你看他的翻辩一代码就知道
在我写了N多类型转换后才发现他妈的Convert里有封装
------解决方案--------------------
对啊,不止Convert把转换成byte[]封装了,IPAddress把转换字节序也封装了
IPAddress.NetworkToHostOrder Method 
IPAddress.HostToNetworkOrder Method
------解决方案--------------------
ft 
TEMP_BYTE_ARRAY[0] = (byte)(((Num & 0xff000000) >> 24) & 0xff);

TEMP_BYTE_ARRAY[1] = (byte)(((Num & 0x00ff0000) >> 16) & 0xff);

TEMP_BYTE_ARRAY[2] = (byte)(((Num & 0x0000ff00) >> 8) & 0xff);

TEMP_BYTE_ARRAY[3] = (byte)((Num & 0x000000ff) & 0xff);

没事多看看系统代码
------解决方案--------------------
Convert.ToByte()
------解决方案--------------------
int i = 3;

Console.WriteLine(BitConverter.ToString(BitConverter.GetBytes(i)));
Console.WriteLine(BitConverter.ToString(BitConverter.GetBytes(IPAddress.HostToNetworkOrder(i))));