鱼C论坛

 找回密码
 立即注册
查看: 1923|回复: 11

关于逻辑按位与运算,求解释

[复制链接]
发表于 2013-8-1 23:26:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
例如说:我自己定义一个数值为11110000B,如果要把第6位设为0的话,进行按位与运算后结果是不是等于10110000,还是00001111,是光改变一位的数值还是全部要进行与运算才行?然后就是要什么理解按位与运算这个概念,很抽象的感觉。我是不是可以理解为and是一个数值的N位设为0而已,还有与运算要什么理解?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-1 23:52:31 | 显示全部楼层

RE: 关于逻辑按位与运算,求解释

既可以改变一位也可以改变多位,取决于你要改变哪些位。
与运算的规则是都为1的时候结果才为1
如果任意一个为0,结果为0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-1 23:57:32 | 显示全部楼层

那or又要什么理解呢。 想了好久,一直很纠结。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-2 01:44:35 | 显示全部楼层
编程爱好者 发表于 2013-8-1 23:57
那or又要什么理解呢。 想了好久,一直很纠结。

and  与
or     或

mov ax, 0011 1111 b
mov bx, 1111 1101 b  ;从左往右,从0到7数,这个0处在第6位
and  ax, bx   ;ax与bx,结果放在ax.  ax=0011 1101  ,运算后第6位被置0,其它位保持不变。

参与运算的两个数要是一样长,都是8位,或都是16位。每一位都参与运算:
          0 0 1 1    1 1 1 1
and   1 1 1 1    1 1 0 1
----------------------------
结果   0 0 1 1    1 1 0 1
便于记忆:结果看上去同上下对应的每一位进行相乘的结果,如0*1=0,1*1=1


          0 1 1 0    0 0 0 0
or      1 0 1 0    0 0 0 0
----------------------------
结果   1 1 1 0    0 0 0 0

便于记忆:同上下对应的每一位进行相加的结果。如0+1=1, 1+1=2 (2理解成非0,不是0)

这些是逻辑运算,和算术运算(+-*/)一样,属于数学运算。
你怎么理解1+1=2 ?,这不好说,若说你有一个苹果,再给你一个,就可算出你有两个苹果。
你怎么理解1 and 0=0 ? ,不好说,若你说了一句真话,又说了一句假话,可算出你撒谎了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-2 02:23:06 | 显示全部楼层
编程爱好者 发表于 2013-8-1 23:57
那or又要什么理解呢。 想了好久,一直很纠结。

其实只用了两句话来记住and与or
and:1=1+1(两者为1结果才为1)其余运算结果都是0
or:0=0+0(两者为0结果才为0)其余运算结果都1

我觉得这是一个很简单并且简洁的一个说明方式

评分

参与人数 1荣誉 +1 鱼币 +1 贡献 +1 收起 理由
Dardy + 1 + 1 + 1 牛鼻

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-2 09:43:12 | 显示全部楼层
与 都是1结果才为1
或 有一个是1 结果就是1
异或 相同为0 不同为1 多简单 有什么纠结的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-2 10:13:46 | 显示全部楼层
一根导线可以传送的稳定状态只有高、低电平;转化为代码“0”和“1”,每个0或1就是一个位(bit/比特)
计算机中所有的信息都是由二进制形式的位(bit/比特)表示
and按位清0
or按位置1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-2 10:20:17 | 显示全部楼层
逻辑”与”操作指令AND(逻辑乘法)

    0*0=0
    0*1=0
    1*0=0
    1*1=1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-2 10:58:26 | 显示全部楼层
楼主~!我想你的这个问题我在论坛朋友那下了本书,里面很好的解释了“与”、“或”、“非”、“异或”这几种逻辑关系。我就引用书上面的截个图你看下吧~!
QQ图片20130802110022.jpg


评分

参与人数 1荣誉 +1 鱼币 +1 贡献 +1 收起 理由
Dardy + 1 + 1 + 1 有耐心

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-2 12:02:52 | 显示全部楼层
说明白一点,你要让那个位运算,你就编写是那个位变化,它可以改变一个位,也可以全改,就看你怎么编。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-2 16:43:38 | 显示全部楼层
解决问题了,谢谢大家!:hug:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-9-19 17:51:49 | 显示全部楼层
小咒 发表于 2013-8-2 02:23
其实只用了两句话来记住and与or
and:1=1+1(两者为1结果才为1)其余运算结果都是0
or:0=0+0(两者为0结 ...

{:1_1:}我赞成这种方式计算
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 07:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表