| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 607 人关注过本帖
标题:小问题。。。大虾解答下、、、
只看楼主 加入收藏
dtczhl
Rank: 1
来 自:浙/杭
等 级:新手上路
帖 子:533
专家分:0
注 册:2008-9-4
结帖率:100%
收藏
 问题点数:0 回复次数:7 
小问题。。。大虾解答下、、、
为什么(s[i]&0x80)==0x80就能判断字符s[i]的最高位为1!!!!
0x80做过位与运算怎么可能还会等于0x80????
搜索更多相关主题的帖子: 解答 
2008-09-05 12:40
qfyzy
Rank: 2
等 级:论坛游民
威 望:1
帖 子:380
专家分:86
注 册:2008-2-17
收藏
得分:0 
首先我想知道S[I]是个什么数据类型~

当对C的经验增加时,它会显的很好用.----Dennis M Ritche如是说
2008-09-05 14:23
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
怎么不会呢?
很明显S是个char[]或者char*,S[i]是个char……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-09-05 14:30
awnucel
Rank: 1
等 级:新手上路
威 望:1
帖 子:68
专家分:0
注 册:2006-12-13
收藏
得分:0 
0x80化成二进制是 10000000 ,最高位为1,后面是0
char占一个字节,也就是说也有8位长度
与运算的规则是,必须 1 & 1结果才为1,其他的都为0
因为0x80 后7位是0,所以无论这个s[i]是什么字符,与运算之后,后7位肯定是0,然后我们看首位,也就是说,如果s[i]最高位为1的话,那么与运算之后,结果才为1,我们做个比方
  00101110
& 10000000
-----------
  00000000

如果
   10011100
&  10000000
------------
   10000000

那么你看,最终结果只有两种,要么为0,要么为 0x80
2008-09-05 15:02
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
其实阿,直接
if(c & 0x80)
 ....
就OK了

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-09-05 15:25
dtczhl
Rank: 1
来 自:浙/杭
等 级:新手上路
帖 子:533
专家分:0
注 册:2008-9-4
收藏
得分:0 
谢谢啦!!!!
2008-09-05 20:03
eastvenuslee
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2008-7-28
收藏
得分:0 
呵呵,三楼是位好师傅,说的好详细。。。
2008-09-07 12:37
快速回复:小问题。。。大虾解答下、、、
数据加载中...
 
   



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

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