| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3231 人关注过本帖, 1 人收藏
标题:怎么理解位逻辑与运算哦?晕了,看半天不懂
取消只看楼主 加入收藏
fyz520
Rank: 1
等 级:新手上路
帖 子:120
专家分:1
注 册:2010-1-27
结帖率:95.12%
收藏(1)
已结贴  问题点数:10 回复次数:2 
怎么理解位逻辑与运算哦?晕了,看半天不懂
书上有一段话是这样的:

逐位求与操作经常驻用来屏蔽掉某些二进制位。例如,数字字符“6”的ASCLL代码值为0x36,高半字节的0x3╳是表示ASCLL码集合中数字字符的特征码,而低半字节0x6才代表该数字的值6,若将一个数字字符串如“62868”转换成其数值时,需从该数字字符串的每个数字字符中,即从它的ASCLL代码值中屏蔽掉高4个二进制位,取出该位数字的值,然后按十进制位依次拼装。那么屏蔽掉某数字字符高4个二进制位的方法是取屏蔽码0x0f,把该数字字符的ASCLL代码值和屏蔽码0x0f进行逐位与操作,即:0x36 & 0x0f = 0x06
                        



我在书上查的ASCLL表和这段话说的好像不太一样,6的ASCLL代码值八进制是006,十六进制是06,没有0x36的啊,也不知道从哪冒出的屏蔽码0x0f,这是啥意思?


哪位大侠能举个例子说明一下位逻辑与或非运算符的用法哈,小弟在此谢过了。。。。这一章有点难,看不懂。。。

比如这个
char x,y;
y=x | 0x04;
y的值是怎么求出来的
搜索更多相关主题的帖子: 运算 逻辑 
2010-01-28 15:22
fyz520
Rank: 1
等 级:新手上路
帖 子:120
专家分:1
注 册:2010-1-27
收藏
得分:0 
谢谢哦,大概意思懂了,怎么才能知道十六进制的0x04等于二进制00000100啊,这是ASCLL码值吗?有表查不
2010-01-28 17:11
fyz520
Rank: 1
等 级:新手上路
帖 子:120
专家分:1
注 册:2010-1-27
收藏
得分:0 
大侠就大侠,谢谢了哦,经你这么一说我懂了,我来分析一下最后一个例子:把一个 int 的符号位清零,因为符号位占存储空间的第一位,我们把第一位清零而其他位不变,按照位与的说法乘以1不变,乘以0变0,我们只要用它来和0111 1111做位与运算这样就达到目的了,而0111就是7,1111是F,所以是0x7f,而0x7f可以说一个操作码,只是用它来做int的符位清零运算工具,所以我们没必要管它的值是多少,是这样吗?大侠
2010-01-29 12:48
快速回复:怎么理解位逻辑与运算哦?晕了,看半天不懂
数据加载中...
 
   



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

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