当前位置: 技术问答>linux和unix
对同一个值,做了2次ntohs之后,等于没变化
来源: 互联网 发布时间:2017-02-05
本文导语: int main() 240 { 241 unsigned short a,b; 242 a=ntohs(1293); 243 b=ntohs(a); 244 printf("%d,%dn",a,b); 245 return 0; 246 } jzhang@lyra:~/test> gcc -o test test.c jzhang@lyra:~/test> ./test 3333,1293 | 那说...
int main()
240 {
241 unsigned short a,b;
242 a=ntohs(1293);
243 b=ntohs(a);
244 printf("%d,%dn",a,b);
245 return 0;
246 }
jzhang@lyra:~/test> gcc -o test test.c
jzhang@lyra:~/test> ./test
3333,1293
240 {
241 unsigned short a,b;
242 a=ntohs(1293);
243 b=ntohs(a);
244 printf("%d,%dn",a,b);
245 return 0;
246 }
jzhang@lyra:~/test> gcc -o test test.c
jzhang@lyra:~/test> ./test
3333,1293
|
那说明你的主机字节序与网络字节序不同
如果字节序相同的话,ntohs没有实际效果
如果不同的话,就是把字节序倒序
你倒两次,就回去了
如果字节序相同的话,ntohs没有实际效果
如果不同的话,就是把字节序倒序
你倒两次,就回去了
|
转换了两次当然还是回到了host byte order,所以值不变了。
|
楼主太2了。。。 楼主,你有本事把一开始那个常数:1293打印出来。。。
那不就是1293,3921,1293么?
服了- -
那不就是1293,3921,1293么?
服了- -
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。