首页
社区
课程
招聘
[求助]signed char,unsigned char,一道选择题
发表于: 2013-9-27 18:47 5952

[求助]signed char,unsigned char,一道选择题

2013-9-27 18:47
5952
1.
32 位机上根据下面的代码,问哪些说法是正确的?
signed char a = 0xe0;
unsigned int b = a;
unsigned char c = a;
A. a>0 && c>0 为真 B. a == c 为真 C. b 的十六进制表示是:0xffffffe0 D. 上面都不对

2.
a是八位对么? 有符号1110 0000 ,-6 ?
b是a带符号扩展32位 ffff ffe0
c是八位对么?  无符号1110 0000 ,e0 ?

3.
a b c 到底怎么转啊啊啊啊啊?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
0xe0 = 11100000 所以是负数。     

楼主你就算不知道。 你就不会写个代码跑一下? 这个很难么。
2013-9-27 19:18
0
雪    币: 114
活跃值: (72)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
3
LZ连补码都算错了。。。
a == -32 ,
b == 0xffffffff - 32 +1,
c == 0xff - 32 + 1;
2013-9-27 19:43
0
雪    币: 53
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
你写的我也看不懂,呜呜~
2013-9-27 20:12
0
雪    币: 114
活跃值: (72)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
5
其实你写的有两条是对的

a是八位对么? 有符号1110 0000 ,-6 ?   //这个应该是 -32,建议LZ去看看“补码”的知识
b是a带符号扩展32位 ffff ffe0                 //这个对
c是八位对么?  无符号1110 0000 ,e0 ?//这个也对
2013-9-27 21:12
0
雪    币: 53
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6

a是八位对么?为什么a输出32位,c输出8位?
我知道有符号 1110 0000 的补码是 -32 ,
但是 a = 1110 0000 还是  a = (1110 0000)补 ?
上传的附件:
2013-9-28 08:31
0
雪    币: 114
活跃值: (72)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
7
[QUOTE=PornU;1225804]
a是八位对么?为什么a输出32位,c输出8位?
我知道有符号 1110 0000 的补码是 -32 ,
但是 a = 1110 0000 还是  a = (1110 0000)补 ?[/QUOTE]

a和c都确实是八位。但是你printf(“%d”,a)  这里控制符%d会隐式把 char 类型转为 int 类型,所以你看到32位的结果。
2013-9-28 08:46
0
雪    币: 114
活跃值: (72)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
8
a == 1110 0000
2013-9-28 08:47
0
游客
登录 | 注册 方可回帖
返回
//