编程达人吧 关注:16贴子:35
  • 0回复贴,共1

1.4 逻辑运算

只看楼主收藏回复

本节主要内容:
1. 布尔代数与二进制的关系
2. 布尔代数的运算
3. VC++6.0的使用
老唐语录:
上节我们讲到,计算机是定宽的
比如: 一个二进制数 1111 1111 1111 1111B
我们用四位,四位书写的式 FFFF 这样比较简单
今天我们讲,计算机除了算术运算外,还有逻辑运算,只有二进制才能进行逻辑运算。逻辑运算中只有错与对,成与败两个结果(也就是0和1)。
或运算:
0+0=0
0+1=1
1+1=1(1+1=2不等于0,就是1)
“+”等价于“或”,计算机中使用“|”符号代替。汇编语言使用“OR”代替
与运算:
0*0=0
0*1=0
1*0=0
1*1=1
“*”等价于“与”,计算机中使用“&”符号代替。汇编语言使用“AND”代替
异或运算:
0-0=0
1-0=1
0-1=1
1-1=0
“-”等价于“异或”,计算机中使用“^”符号代替。汇编语言使用“XOR”代替
三种运算在生活中怎样存在?
电路如图1-4:
图1-4:OR运算与等效电路
说明:看图1-4,这是一个并联电路图,任意一个开关按下时,灯泡都会亮。
所以说二进制运算是客观存在的,
是因为太冗长,所以发明了十进制
与运算电路如图1-5:
图1-5:AND运算与等效电路
说明:看图1-5,这是一个串联电路图,只有两个开关同时按下时,灯泡才会亮。
异或运算电路如图1-6:
图1-6:XOR运算与等效电路
说明:看图1-6,这是一个交叉电路图,只有两个开关一上一下时,灯泡才会亮。
与运算:比如一个家庭,只有丈夫和妻子都有生育能力,才能有孩子。
异或运算:在法院势均力敌的两方无法分出胜负,只有一方高于另一方,才有胜负。
练习:
我们学习计算机必不可少的软件VirtualC++6.0
现在我们新建一个工程,步骤如下:
1.File->new,弹出下面窗口,点击Win32 Console Application,然后在Project name框中填入工程名,例如“HelloWorld”,点击OK,如图1-7:
图1-7:新建工程对话框
2.在图1-8中选择第三项:“A ’Hello,world’ application”,然后点击“Finish”。
图1-8:win32 Comsole Application
操作:
1> 按F11键单步跟踪每一条语句,并打开寄存器窗口查看寄存器的值变化,如图1-9:
图1-9:寄存器窗口
2> 添加如下语句,观察对应寄存器变化:
__asm{
mov eax,0x33434
mov ecx,0x124
...
}
课后理解:
小陶say:
或运算(|):只要有一个是1,就是1,其它为0
与运算(&): 两个为1才是1,其它为0
异或运算(^):相同的为0,不同的为1
小胡say:
看了楼主的理解,我懂了
课后疑问:
本节没有疑问。
课后总结:
二进制实现了逻辑运算和算术运算的统一。
课后练习:
1.2、4、6进制,每个进制写32位。0-FFFFFFFF
2.写10个寄存器,背熟顺序


1楼2016-06-05 22:15回复