免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1361 | 回复: 3
打印 上一主题 下一主题

1个字节怎么会出现这样的结果 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-03 16:25 |只看该作者 |倒序浏览
测试代码

  1. #include <stdio.h>

  2. int main()
  3. {
  4.   int c ;
  5.   c = 0 ;
  6.   memset( &c, 0x79, 1 ) ;
  7.   printf( "[%d]\n", c ) ;
  8.   printf( "%02X\n", ((char *)&c)[0] ) ;
  9.   c = 0 ;
  10.   memset( &c, 0x81, 1 ) ;
  11.   printf( "[%d]\n", c ) ;
  12.   printf( "%02X\n", ((char *)&c)[0] ) ;
  13.   return ;
  14. }
复制代码


运行环境 linux as 3 结果:
[121]
79
[129]
FFFFFF81

运行环境 AIX5L 结果:
[2030043136]
79
[-2130706432]
81


怎么会这样?平时不怎么写C,真是想不出为什么,希望大家帮忙

论坛徽章:
0
2 [报告]
发表于 2006-05-03 17:55 |只看该作者
两个系统的字节序不同:前者是 little endian,后者是 big endian。

论坛徽章:
0
3 [报告]
发表于 2006-05-04 11:15 |只看该作者
楼上的言之有理

论坛徽章:
0
4 [报告]
发表于 2006-05-04 14:49 |只看该作者
这个方法可以用来判断一个机器是什么字节序的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP