搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 一个联合的小问题
标题:
一个联合的小问题
只看楼主
yt414204458
等 级:
论坛游民
帖 子:260
专家分:55
注 册:2008-3-1
结帖率:
50%
楼主
问题点数:0 回复次数:7
一个联合的小问题
main()
{union
{char ch[2];
int d;
}s;
s.d=0x4321;
printf("%x,%x\n",s.ch[0],s.ch[1]);
}
在16位编译系统上,程序执行后的输出结果是什么?
这里为什么要提一下在16位编译系统上,这个题应该怎么做?
搜索更多相关主题的帖子:
联合
2008-08-25 11:26
liyanhong
来 自:水星
等 级:
禁止访问
威 望:
8
帖 子:1867
专家分:0
注 册:2008-5-3
第
2
楼
得分:0
这里为什么要提一下在16位编译系统上?
16位->int 2个字节
32位->int 4个字节
爱上你 是 我的错 可是离 开 又舍不得 听着你为我写的歌 好难过
如果说 我说如果 我们还 能 重新来过 不去计 较 谁对谁错 会怎么做
2008-08-25 11:33
yt414204458
等 级:
论坛游民
帖 子:260
专家分:55
注 册:2008-3-1
第
3
楼
得分:0
回复 2# liyanhong 的帖子
知道这和32位上的执行结果有什么不同吗?这个题的结果又是什么?
一切从爱C开始
2008-08-25 11:35
liyanhong
来 自:水星
等 级:
禁止访问
威 望:
8
帖 子:1867
专家分:0
注 册:2008-5-3
第
4
楼
得分:0
这要算的呀 我现在在网吧 好麻烦你是可以想像的啊
爱上你 是 我的错 可是离 开 又舍不得 听着你为我写的歌 好难过
如果说 我说如果 我们还 能 重新来过 不去计 较 谁对谁错 会怎么做
2008-08-25 11:43
yt414204458
等 级:
论坛游民
帖 子:260
专家分:55
注 册:2008-3-1
第
5
楼
得分:0
哪个不在网吧啊,帮着看一下
一切从爱C开始
2008-08-25 17:50
liyanhong
来 自:水星
等 级:
禁止访问
威 望:
8
帖 子:1867
专家分:0
注 册:2008-5-3
第
6
楼
得分:0
结果用16进制表示
21 43 晕死
我不确定了
[[it] 本帖最后由 liyanhong 于 2008-8-27 21:12 编辑 [/it]]
爱上你 是 我的错 可是离 开 又舍不得 听着你为我写的歌 好难过
如果说 我说如果 我们还 能 重新来过 不去计 较 谁对谁错 会怎么做
2008-08-27 21:04
hoodlum1980
来 自:浙江大学
等 级:
论坛游民
威 望:
2
帖 子:289
专家分:23
注 册:2008-2-24
第
7
楼
得分:0
地址: 0 1
------
21 43
你可以把一个int写入到文件里,
fprintf(stream, "%d", 0x4321);
然后用ultraedit看下16进制查看就知道了。
数据在内存或者文件里的存储,是低地址存储低位的数据,高地址存储高位的数据。因此比如数据运算以后如果溢出,或者大数据类型向小数据类型转,一般是高位被丢失。
如果你曾经设计过二进制文件格式,IO,那么这些东西就会很熟悉了。
[[it] 本帖最后由 hoodlum1980 于 2008-8-28 04:48 编辑 [/it]]
2008-08-28 04:42
xzx1002002
等 级:
论坛游民
帖 子:68
专家分:27
注 册:2006-3-7
第
8
楼
得分:0
ls几位正解。
那32位机呢?
地址: 0 1 2 3
----------------------
21 43 0 0
那结果和16位机不是一样么。
2008-08-28 12:06
8
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-229772-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.026950 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved