LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 663|回复: 4

高低倒位的问题,急急急啊!

[复制链接]
发表于 2003-6-23 14:46:11 | 显示全部楼层 |阅读模式
高低倒位的问题,急急急啊!
我用如下方法对PC传到UNIX机器上的int或long型数据进行倒位运算
但是如果是负数就有问题了,如何解决呢?多谢
Conv(long ADNum,int ft)  /* 倒位子函数 */
{
  if(ft==4)/*如果ft=4就按4字节进行倒位*/
  {
  ADNum=((ADNum&0x000000ff)<<24)|
          ((ADNum&0x0000ff00)<<8)|
          ((ADNum&0x00ff0000)>>8)|
          ((ADNum&0xff000000)>>24);
  }
  else  /*否则按2字节进倒位*/
  {
    ADNum=((ADNum&0x00ff)<<8)|((ADNum&0xff00)>>8);
  }        
  return (ADNum);  /*将结果返回*/

}
 楼主| 发表于 2003-6-23 15:51:08 | 显示全部楼层
解决
发表于 2003-6-23 19:39:40 | 显示全部楼层
也可以使用htonl htons解决
不用自己写函数的
发表于 2003-6-23 23:45:31 | 显示全部楼层
我觉得转换以前,腰先知道自己正在运行的系统是什么字节顺序的。是吧?
发表于 2003-6-24 12:08:26 | 显示全部楼层
是的
如果主机字节序与网络字节序一样
那么只是一个空操作

LINUX和WINDOWS上都是不同
所以可以使用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表