char 和 unsigned char的问题

程序员面试宝典里有一道题目输出结果是000000f7,fffffff7我改了一下,输出结果变成了fffffff7,fffffff7请问为什么?... 程序员面试宝典里有一道题目

输出结果是000000f7,fffffff7
我改了一下,

输出结果变成了fffffff7,fffffff7
请问为什么?
展开
 我来答
空雪梦见
2014-04-10 · TA获得超过5597个赞
知道大有可为答主
回答量:2522
采纳率:75%
帮助的人:1190万
展开全部
遇到高位要扩展的情况,无符号的一律用0填充,有符号的一律用最高位填充

你改的,i是a截断之后变成的0xf7,b指向这个值
i和*b都是char型,正好你的编译器对待char型是signed char
所以在1字节扩展到4字节的时候用最高位填充,0xf7最高位是1,于是前面全部填1
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式