字节反序

处理网络报文的时候,常常需要将MAC地址,ip地址取反。例:32位的一个值:0x4a567fd0 转序后0xd07f564a.

实现的方法很多,下面给出一种常用的。

1 #include <iostream>
2
3  #define BYTESWAP(data) \
4 ( ( (data)<<24) )| \
5 ( ( (data)&(0xff00) )<<8 )| \
6 ( ( (data)&(0x00ff0000) )>>8)| \
7 ( ( (data)>>24))
8
9  int main(void)
10 {
11 int mydata = 0x4a567fd0;
12 std::cout<<std::hex<<mydata<<std::endl;
13 mydata = BYTESWAP(mydata);
14
15 // 输出反序后的结果
16   std::cout<<mydata<<std::endl;
17 return 0;
18 }
posted @ 2011-06-12 12:17  范宇超  阅读(522)  评论(0编辑  收藏  举报