怎样把一个int32的数字转换成byte[]

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

求教?
...全文
443 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
vrhero 2007-11-06
  • 打赏
  • 举报
回复
结果就是00 00 00 03
你读反了

在内存中,数字的存储就是从低位开始的
soaringbird 2007-11-06
  • 打赏
  • 举报
回复
int i = 3;

Console.WriteLine(BitConverter.ToString(BitConverter.GetBytes(i)));
Console.WriteLine(BitConverter.ToString(BitConverter.GetBytes(IPAddress.HostToNetworkOrder(i))));
FollowCN 2007-11-06
  • 打赏
  • 举报
回复
Convert.ToByte()
Red_angelX 2007-11-06
  • 打赏
  • 举报
回复
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);

没事多看看系统代码
liuhui810 2007-11-06
  • 打赏
  • 举报
回复
还是没人说清楚啊。用什么函数?
convert类里的什么函数?
soaringbird 2007-11-06
  • 打赏
  • 举报
回复
对啊,不止Convert把转换成byte[]封装了,IPAddress把转换字节序也封装了
IPAddress.NetworkToHostOrder Method
IPAddress.HostToNetworkOrder Method
liuhui810 2007-11-06
  • 打赏
  • 举报
回复
原问题改成:
怎样把一个int32的数字转换成byte[]?
我用System.BitConverter.GetBytes();
但结果是3变成03 00 00 00,而我想要的是00 00 00 03。
Red_angelX 2007-11-06
  • 打赏
  • 举报
回复
Convert里有,要不然自己>> 移位转 03000000 0000003 只是取决于移位的顺序 你看他的翻辩一代码就知道
在我写了N多类型转换后才发现他妈的Convert里有封装
王集鹄 2007-11-06
  • 打赏
  • 举报
回复
在内存中,数字的存储就是从低位开始的
这样转换起来很方便
[code=BatchFile]int 03 00 00 00
short[03 00]00 00
byte [03]00 00 00[/code]
只要将后面的字节去掉就可以转换了,不用移位
王集鹄 2007-11-06
  • 打赏
  • 举报
回复
但结果是3变成30 00 00 00
-----
修正:
是03 00 00 00


越看越不明白,你得到的结果不是和ultraedit一样吗?
liuhui810 2007-11-06
  • 打赏
  • 举报
回复
修正:
是03 00 00 00
liuhui810 2007-11-06
  • 打赏
  • 举报
回复
不对啊。我用ultraedit打开,16进制就显示的是00 00 00 03啊。
liuys00 2007-11-06
  • 打赏
  • 举报
回复
结果就是00 00 00 03
你读反了

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧