| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 500 人关注过本帖
标题:谁来帮我解释下这个可好?
只看楼主 加入收藏
yt414204458
Rank: 2
等 级:论坛游民
帖 子:260
专家分:55
注 册:2008-3-1
结帖率:50%
收藏
已结贴  问题点数:5 回复次数:3 
谁来帮我解释下这个可好?
#include <iostream>
using namespace std;
int main()
{
unsigned char a=0xA5;
unsigned char b=~a>>4;
printf("b=%d\n",b);
}
#include <iostream>
using namespace std;
int main()
{
unsigned char a=0xA5;
unsigned char b=(~a)>>4;
printf("b=%d\n",b);
}
#include <iostream>
using namespace std;
int main()
{
unsigned char a=0xA5;
unsigned char b=~(a>>4);
printf("b=%d\n",b);
}
他们的答案为啥都是一样的啊?希望能有一个详细的运算过程
搜索更多相关主题的帖子: include 
2014-06-04 09:43
砖家的谎言
Rank: 12Rank: 12Rank: 12
等 级:禁止访问
威 望:30
帖 子:693
专家分:3898
注 册:2013-12-6
收藏
得分:3 
肯定是一样的,你仔细看下你的问题

我不是砖家,要努力成为砖家。
2014-06-04 10:11
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9029
专家分:54050
注 册:2011-1-18
收藏
得分:3 
(~a)>>4;
a的值为10100101,a表达式值为 00000……00000 10100101
~a表达式的值就变成 11111……11111 01011010
(~a)>>4表达式的值就变成 11111……11111 11110101
强转为 unsigned char 就是 11110101


~(a>>4)
a的值为10100101,a表达式值为 00000……00000 10100101
a>>4表达式的值就变成 00000……00000 00001010
(~a)>>4表达式的值就变成 11111……11111 11110101
强转为 unsigned char 就是 11110101
2014-06-04 10:29
yt414204458
Rank: 2
等 级:论坛游民
帖 子:260
专家分:55
注 册:2008-3-1
收藏
得分:0 
以下是引用rjsp在2014-6-4 10:29:32的发言:

(~a)>>4;
a的值为10100101,a表达式值为 00000……00000 10100101
~a表达式的值就变成 11111……11111 01011010
(~a)>>4表达式的值就变成 11111……11111 11110101
强转为 unsigned char 就是 11110101


~(a>>4)
a的值为10100101,a表达式值为 00000……00000 10100101
a>>4表达式的值就变成 00000……00000 00001010
(~a)>>4表达式的值就变成 11111……11111 11110101
强转为 unsigned char 就是 11110101

懂啦懂啦~谢谢,还想问一下~和>>的优先级哪个高啊?应该是~ 吧?我在一个面试的书里面说>>的优先级比~高

一切从爱C开始
2014-06-04 11:05
快速回复:谁来帮我解释下这个可好?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022021 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved