CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Linux/Unix社区 >  程序开发区

字节序的问题

楼主tcww88(wuwei)2006-03-15 13:08:39 在 Linux/Unix社区 / 程序开发区 提问

看了网上流传甚广的一个自己写的ping程序,看到下面的语句,不解:  
  /*校验和算法*/  
  unsigned   short   cal_chksum(unsigned   short   *addr,int   len)  
  {   int   nleft=len;  
  int   sum=0;  
  unsigned   short   *w=addr;  
  unsigned   short   answer=0;  
   
  /*把ICMP报头二进制数据以2字节为单位累加起来*/  
  while(nleft>1)  
  {   sum+=*w++;  
  nleft-=2;  
  }  
  /*若ICMP报头为奇数个字节,会剩下最后一字节。把最后一个字节视为一个2字节数据的高字节,这个2字节数据的低字节为0,继续累加*/  
  if(   nleft==1)  
  {   *(unsigned   char   *)(&answer)=*(unsigned   char   *)w;  
  //ok,这里就是不明白的地方,这样我发现只是把最后一个字节放到路一个short型的低位而不是高位,实验证明也是如此,是不是作者错了?????????????????  
  sum+=answer;  
  } 问题点数:20、回复次数:2Top

1 楼YanDong_8212(谢科)回复于 2006-03-15 13:14:56 得分 10

不同系统的字节顺序是不同的,有的是大端顺序,有的是小端顺序,所以一般要用系统函数来转换。Top

2 楼hiphop(小风)回复于 2006-03-15 20:18:16 得分 10

不同平台是用大端   还是小端存储字节都是不一样的Top

相关问题

  • 字节序的问题
  • 从网络字节顺序转 换为本机字节顺序?
  • 什么叫网络字节顺序??
  • 关于字节序的疑惑
  • 字节顺序,motolora 和intel?急!!!!!!!!
  • 关于网络字节顺序问题
  • 关于网络字节顺序
  • 有谁知道,什么是主机字节顺序,网络字节顺序?(htons)
  • 主机字节顺序和网络字节顺序何时须转换
  • 网络字节顺序与本地机子字节顺序的转换问题(很简单的)

关键词

  • nleft
  • 顺序
  • unsigned
  • short
  • answer
  • sum
  • 不同

得分解答快速导航

  • 帖主:tcww88
  • YanDong_8212
  • hiphop

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo