3434|8

73

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

一个简单的关于计算机组成问题!,谢谢讲解! [复制链接]

   1.编写过程 is-little-endian,当在小端机器上编译和运行时返回1,在大端法机器上编译和运行时返回0,这个程序应该可以在任何机器上运行,无论机器的字长是多少?

最新回复

   恍然!明白了,谢谢你们啊!!^_^  详情 回复 发表于 2007-10-25 23:47
点赞 关注

回复
举报

60

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
bool IsLEndian()
{
    int i = 1;

    return (*(char *)&i);
}
/*

你看看行不?嘿嘿

*/
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
    好先谢谢了啊,我试试哈!
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

4
 
可以详细解答一下不啊?这句看不懂: return (*(char *)&i);
 
 
 

回复

121

帖子

0

TA的资源

一粒金砂(中级)

5
 
i = 0x00000001;假设i的地址是:f0
小端(低位优先)存放为:
地址:f0 f1 f2 f3
内容:01 00 00 00
大端为:
地址:f0 f1 f2 f3
内容:00 00 00 01

*(char *)&i
这个表达式的意思是:
&i:取i的地址:f0
(char *)&i:将f0强制转换为字符型指针.
*(char *)&i:通过指针取f0空间的内容

因此返回的就是:01或00

正适合题目要求...
//还有疑问请再复习计算机组成原理,以及C语言指针部分的内容.
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

6
 
   

恩,真的很谢谢你,大概的意思我明白了啊。但是为什么一定要把将f0强制转换为字符型指针?(这里不是很明白啊。)麻烦再解答一下啊! ^_^
 
 
 

回复

52

帖子

0

TA的资源

一粒金砂(初级)

7
 
字符型指针是八位的,取其内容才可得到f0的值
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

8
 
嗯,楼上说出来了

之所以用八位,是为了去掉其它多余的干扰因素实现:通用

呵呵
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

9
 
  
恍然!明白了,谢谢你们啊!!^_^
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表