2012-07-09 80 views

回答

0

使用htonl/ntohl您的操作系统提供

+3

如果本机格式与网络格式相反,则只会交换字节。 – 2012-07-09 14:40:47

+1

@MikeSeymour是真实的,但这很可能是用户需要的。任何编写低级别非网络订单驱动程序的人都可能知道如何去做。这似乎是一个很好的99%的答案 – 2012-07-09 14:41:26

+2

嗯实际上,我正在写一个低层次的非网络订单驱动程序......虽然如此,但我的头脑还是如此。我理解这个概念,但我习惯于高级语言。 – user1496413 2012-07-09 16:04:30

5

要么使用您的OS(参见马丁·贝克特的回答)所提供的功能,或者,如果你正在寻找一种方式来做到这一点的兴趣,你可能有兴趣在以下代码片段中:

x = (x & 0x0000FFFF) << 16 | (x & 0xFFFF0000) >> 16; 
x = (x & 0x00FF00FF) << 8 | (x & 0xFF00FF00) >> 8; 
+2

是的,为了完成字节交换,需要第二行:'x =(x&0x00FF00FF)<< 8 | (x&0xFF00FF00)>> 8;' – bames53 2012-07-09 14:45:04

+0

@ bames53是的,你是对的!对于那个很抱歉! – 2012-07-09 14:48:30