java 和 C 的高低字节转换?

goldater 2010-11-17 11:11:49
我在C中的16进制是 0x0302 ,但在java中却是 0x0203,
因为我的是int型的数据, 转换成十六进制我才发现这个问题……

怎么样才能把高低字节交换啊?
...全文
308 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
岚尘 2011-04-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 clariones 的回复:]

引用 6 楼 goldater 的回复:

现在用java写个方法,把比如int a = 0x0203; 通过方法后,成为: 0x0302,
怎样实现,不用管c

这种改法只是临时起作用,建议还是按照规范修改Java和C的代码,否则以后不好维护。
至于这个:
Java code

int a = 0x2030;
int b = ((a >> 24) &……
[/Quote]
最后一个错了
int a = 0x2030;
int b = ((a >> 24) & 0xff) + (((a>>16)&0xFF)<<8)+(((a>>8)&0xFF)<<16)+((a<<24)&0xFF);
qybao 2010-11-17
  • 打赏
  • 举报
回复
你的java和C都是怎样转换为16进制的?
凉岑玉 2010-11-17
  • 打赏
  • 举报
回复
不清楚楼主的意思·如果是沙发那种情况的话,可以用他的方法,如果是说转换得到的16进制数就不一样的话我就不知道怎么回事了
houjin_cn 2010-11-17
  • 打赏
  • 举报
回复
你是说java通过DataOutputStream写出的int的字节序跟C不一样吧?
你可以参考DataOutputStream, 实现一个自己的输出流, 让它的字节序跟C一样
goldater 2010-11-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 goldater 的回复:]
我在C中的16进制是 0x0302 ,但在java中却是 0x0203,
因为我的是int型的数据, 转换成十六进制我才发现这个问题……

怎么样才能把高低字节交换啊?
[/Quote]

我再问一下他们为什么不一样?? 而且没规律可循吗?
goldater 2010-11-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 clariones 的回复:]

引用 6 楼 goldater 的回复:

现在用java写个方法,把比如int a = 0x0203; 通过方法后,成为: 0x0302,
怎样实现,不用管c

这种改法只是临时起作用,建议还是按照规范修改Java和C的代码,否则以后不好维护。
至于这个:
Java code

int a = 0x2030;
int b = ((a >> 24) &……
[/Quote]



你试试,不对啊
clariones 2010-11-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 goldater 的回复:]

现在用java写个方法,把比如int a = 0x0203; 通过方法后,成为: 0x0302,
怎样实现,不用管c
[/Quote]
这种改法只是临时起作用,建议还是按照规范修改Java和C的代码,否则以后不好维护。
至于这个:

int a = 0x2030;
int b = ((a >> 24) & 0xff) + (((a>>16)&0xFF)<<8)+(((a>>8)&0xFF)<<16)+((a>>24)&0xFF);
goldater 2010-11-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 houjin_cn 的回复:]

你是说java通过DataOutputStream写出的int的字节序跟C不一样吧?
你可以参考DataOutputStream, 实现一个自己的输出流, 让它的字节序跟C一样
[/Quote]

现在用java写个方法,把比如int a = 0x0203; 通过方法后,成为: 0x0302,
怎样实现,不用管c
clariones 2010-11-17
  • 打赏
  • 举报
回复
都用网络字节序就好了。
java都是用网络字节序的,除非是自己写的序列化代码;
C的字节序用宏__BYTE_ORDER就知道了,用htons(),htonl(),ntohs(),ntohl()就可以保证

编码一定要规范
xiaotugege 2010-11-17
  • 打赏
  • 举报
回复
big endian?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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