24小时热门版块排行榜    

查看: 351  |  回复: 1

zmyzhu

新虫 (初入文坛)

[交流] 位运算 已有1人参与

#include<stdio.h>
main()
{
        char a=0x95,b,c;
        b=(a & 0x0f)<<4;
        c=(a & 0xf0)>>4;
        a=b | c;
        printf("a=%d",a);
}(vc6.0)
为什么结果是89

0x95的十进制是149,超过了char的范围127,怎么办啊,
有符号位右移,应该是补符号位的吧
回复此楼

» 猜你喜欢

c语言学习求助
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

阿桔

新虫 (初入文坛)


小木虫: 金币+0.5, 给个红包,谢谢回帖
a=10010101
b=00000101<<4=01010000
c=10010000>>4=11111001 或者 00001001(不一定是补1的……)
a=11111001 或者 01011001
01011001=89
2楼2015-08-11 17:26:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zmyzhu 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见