|
发表于 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 ? ,不好说,若你说了一句真话,又说了一句假话,可算出你撒谎了。
|
|