逻辑运算又称布尔运算布尔运算,利用数学方法研究逻辑问题,成功地进行了逻辑运算。 他用等式表示判断,把推理看作等式的变换。 该变换的有效性不依赖于符号的解释,而仅取决于符号的组合规则。
学习数据结构知识经常使用逻辑运算,因此再次巩固这一知识,减少学习数据结构等其他知识的障碍。
1 .基本概念
常数和变量:逻辑常数只有0和1两个,表示对立的两个逻辑状态。 逻辑变量与常规代数一样,也可以用字母、符号、数字及其组合来表示,但逻辑常数的可能值有0和1两种,没有中间值,因此有本质的区别。
逻辑运算(逻辑运算)逻辑代数有and、or、非三个基本逻辑运算。 表示逻辑运算的方法有句子记述、逻辑代数式、真值表、卡诺图等各种各样。
2.java逻辑运算符和位运算符
2.1 .逻辑运算符
运算符:“与”、“或”||、“非逻辑”! ’,异或’^’,逻辑积’,逻辑和’|’
逻辑运算真值表:下面的or=||和wor=|
a
B
AB
A或B
! a
A^B
AB
A wor B
假的
假的
假的
假的
真的
假的
假的
假的
真的
假的
假的
真的
假的
真的
假的
真的
假的
真的
假的
真的
真的
真的
假的
真的
真的
真的
真的
真的
假的
假的
真的
真的
a和b是逻辑运算的两个逻辑变量
两个逻辑与(和) )的运算规则基本相同,两个逻辑或(|和) )的运算规则也基本相同。
和|运算计算完所有逻辑表达式,而和||运算具有短路计算功能。
对于,如果左侧条件为false,则还计算右侧条件的值;而对于,如果左侧条件为false,则不计算右侧条件。 这种现象称为短路现象。
短路计算是指系统从左向右进行逻辑表达式计算,计算结果确定后,计算过程结束。
因为对于运算,如果运算符左端的值为false,则无论运算符右端的值是true还是false,最终结果都为false。
因此,当系统判断为运算符左端的值为false时,之后的计算过程结束;
对于||运算,这是因为如果运算符左端的值为true,则最终结果为true,无论运算符右端的值是true还是false。
因此,如果系统判断||运算符左端的值为true,则系统结束以后的计算过程。
利用短路现象:
和||运算符在编程时使用。 不建议使用和|运算符。
注意:如果异或相同,则为false;相反,则为true。
2.2 .位运算符
位运算符)位和’、位或’|’、位非’~’、异或’^’、右移位’、左移位’’
位运算的位和’、位或’|’、位非’~’、位异或’^’与逻辑运算的对应操作的真值表完全相同,其区别在于位运算操作的操作数和运算结果都是二进制整数,而逻辑运算的对应操作的操作
运算规则,下一个or=|和wor=|
a
B
AB
A wor B
A^B
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
简而言之
:和运算。 只有同一张照片的时候是真的,接近乘法。
|:或运算。 只有在相同的假的情况下才为假,接近加法。
^:异或运算。 同是假的,不同的是真的。
位运算符的说明,下面的or=|和wor=|
运算符
名字
样品
说明
amp
;位与
x&y
把x和y按位求与
wor
位或
x wor y
把x和y按位求或
~
位非
~x
把x按位求非
^
位异或
x^y
把x和y按位求异或
>>
右移
x >> y
把x的各位右移y位
<<
左移
x << y
把x的各位左移y位
>>>
右移
x >>> y
把x的各位右移y位,左边填0
下边为位&运算:
int a = 15; //x等于二进制数的00001111
int b = 6; //y等于二进制数的00000110
int c = x&y //z等于二进制数的00000110
结果为: 二进制数的00000110
右移是将一个二进制数按指定移动的位数向右移位,移掉的被丢弃,左边移进的部分或者补0(当该数为正时),或者补1(当该数为负时)。这是因为整数在机器内部采用补码表示法,正数的符号位为0,负数的符号位为1。
将一个数左移”<
将一个数右移>>”会使该值除以2的幂。
右移(补零)运算符,即无符号右移,”>>>”永远不会产生负号,因为其符号位总是被补零。 不论被移动数是正数还是负数,左边移进的部分一律补0。
1
2
3
4
5
6
7
8
9
10
111<<3 = 8
8>>3 = 1
int x = 70; //x等于二进制数的01000110
int y = 2;
int z = x>>y //z等于二进制数的00010001
即运算结果为z等于二进制数00010001,即z等于十进制数17。
int x = -70; //x等于二进制数的11000110
int y = 2;
int z = x>>y //z等于二进制数的11101110
即运算结果为z等于二进制数11101110,即z等于十进制数-18。
右移和左移操作,是整数机器数的补码表示法。
&运算符规定必须信号A和B都被充电,其结果才是充电。(1表示充电,0表示未充电)
|运算符规定只要信号A或B被充电,输出结果就是充电。
^异或(XOR)运算符规定如果信号A或B之一被充电,但是信号A和B不是同时被充电,则结果为充电。
~运算符也称为按位求补,它翻转所有的充电状态值。
想了解更多技术文章信息,请继续关注wiliam.s Blog,谢谢,欢迎来访!