搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 我是初学者,一道简单的选择题
标题:
我是初学者,一道简单的选择题
只看楼主
jingchun
等 级:
新手上路
帖 子:9
专家分:0
注 册:2017-12-19
结帖率:
0
楼主
已结贴
√
问题点数:20 回复次数:7
我是初学者,一道简单的选择题
有程序段:int a=0x161; printf("%c",a);输出为 C 。
A)161 B)353 C)a D)无法确定
这道题为什么选c啊?无法理解啊
搜索更多相关主题的帖子:
选择题
int
printf
输出
2017-12-19 15:29
jingchun
等 级:
新手上路
帖 子:9
专家分:0
注 册:2017-12-19
第
2
楼
得分:0
这个题好难啊┭┮﹏┭┮
2017-12-19 15:54
吹水佬
等 级:
版主
威 望:
432
帖 子:10064
专家分:41463
注 册:2014-5-20
第
3
楼
得分:10
如果无确定系统平台,这个与大小端模式有关。
int a=0x161; 内存布局(地址:低-->高)
大端模式:00 00 01 61
小端模式:61 01 00 00
2017-12-19 15:56
吹水佬
等 级:
版主
威 望:
432
帖 子:10064
专家分:41463
注 册:2014-5-20
第
4
楼
得分:0
可以这样看看:
#include <stdio.h>
main()
{
union check
{
int i;
char ch;
} c;
c.i = 0x161;
printf("%c\n",c.ch);
}
2017-12-19 16:04
jingchun
等 级:
新手上路
帖 子:9
专家分:0
注 册:2017-12-19
第
5
楼
得分:0
回复 3楼 吹水佬
为什么不选A而选C呢?
2017-12-19 16:12
吹水佬
等 级:
版主
威 望:
432
帖 子:10064
专家分:41463
注 册:2014-5-20
第
6
楼
得分:0
以下是引用
jingchun
在2017-12-19 16:12:01的发言:
为什么不选A而选C呢?
输出格式是"%c", 就是char类型,一个字节
int 0x161 是4个字节,小端模式:61 01 00 00
第一个字节是0x61,表达为字符是'a'
收到的鲜花
jingchun
于
2017-12-19 16:51
送鲜花
3朵 附言:我很赞同
2017-12-19 16:27
jingchun
等 级:
新手上路
帖 子:9
专家分:0
注 册:2017-12-19
第
7
楼
得分:0
回复 6楼 吹水佬
了解啦,Thanks♪(・ω・)ノ
2017-12-19 16:51
yuandefeng
等 级:
业余侠客
威 望:
3
帖 子:51
专家分:216
注 册:2017-11-28
第
8
楼
得分:10
0x161是十六进制,十进制是353,换成二进制就是101100001
而a字符的ASCII码是97,换成二进制是1100001
一个char字符占一个字节也就是8位二进制,从0x161中选取后面8位,就是01100001,等于97的二进制,所以输出了a。
收到的鲜花
jingchun
于
2017-12-19 21:47
送鲜花
3朵 附言:我很赞同
2017-12-19 20:15
8
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-483509-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.012801 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved