按位与&和短路与&&区别<转载>
2015-03-16 09:13
281 查看
按位与&和短路与&&区别:
& 既是位运算符又是逻辑运算符,&的两侧可以是int,也可以是boolean表达式,当&两侧是int时,要先把运算符两侧的数转化为二进制数再进行运算,而短路与(&&)的两侧要求必须是布尔表达式。举例如下:
12&5 的值是多少?答:12转成二进制数是1100(前四位省略了),5转成二进制数是0101,则运算后的结果为0100即4 这是两侧为数值时;
若 int i = 2,j = 4;则(++i=2)&(j++=4)的结果为false,其过程是这样的:先判断++i=2是否成立,这里当然是不成立了(3 == 2),但是程序还会继续判断下一个表达式是否成立,j++=4 ,该表达式是成立的,但是&运算符要求运算符两侧的值都为真,结果才为真,所以(++i=2)&(j++=4)的结果为 false 注意 :&为真的条件是两侧表达式都为真,但是即使我们判断出左侧表达式的值为false,程序也还是要继续执行去判断右侧的表达式值的真假
若 int i = 2,j = 4;则(++i=2)&&(j++=4)的结果为false,其过程基本上和上面的是相同的,但是若左侧表达式的值为false时,程序则不会继续判断右侧表达式的真假了,短路与中,短路这个词大概也就是这个意思吧
按位或(|)与短路或(||)区别:
按位或和短路或的区别大体上和(&)和(&&)的区别差不多
(|)和(||)成立的条件是只要一侧表达式为真,结果就为真,在(|)运算时,无论左侧的表达式的值为真还是为假,都要判断右侧的表达式的值的真假,而(||)在运算时,只要左侧表达式的值为真,就不再判断右侧表达式的值了
& 既是位运算符又是逻辑运算符,&的两侧可以是int,也可以是boolean表达式,当&两侧是int时,要先把运算符两侧的数转化为二进制数再进行运算,而短路与(&&)的两侧要求必须是布尔表达式。举例如下:
12&5 的值是多少?答:12转成二进制数是1100(前四位省略了),5转成二进制数是0101,则运算后的结果为0100即4 这是两侧为数值时;
若 int i = 2,j = 4;则(++i=2)&(j++=4)的结果为false,其过程是这样的:先判断++i=2是否成立,这里当然是不成立了(3 == 2),但是程序还会继续判断下一个表达式是否成立,j++=4 ,该表达式是成立的,但是&运算符要求运算符两侧的值都为真,结果才为真,所以(++i=2)&(j++=4)的结果为 false 注意 :&为真的条件是两侧表达式都为真,但是即使我们判断出左侧表达式的值为false,程序也还是要继续执行去判断右侧的表达式值的真假
若 int i = 2,j = 4;则(++i=2)&&(j++=4)的结果为false,其过程基本上和上面的是相同的,但是若左侧表达式的值为false时,程序则不会继续判断右侧表达式的真假了,短路与中,短路这个词大概也就是这个意思吧
按位或(|)与短路或(||)区别:
按位或和短路或的区别大体上和(&)和(&&)的区别差不多
(|)和(||)成立的条件是只要一侧表达式为真,结果就为真,在(|)运算时,无论左侧的表达式的值为真还是为假,都要判断右侧的表达式的值的真假,而(||)在运算时,只要左侧表达式的值为真,就不再判断右侧表达式的值了
相关文章推荐
- matlab中 ndims(a)、size(a)、length(a)的区别<转载>
- top、margin-top的区别<转载>
- <转载> Timer和ScheduledThreadPoolExecutor的区别
- C++中指针和引用的区别-转载fu_jiangtao<chinaunix>
- <转载>servlet服务器内部跳转与重定向(外部跳转)的区别
- OC中#import ""和<>的区别
- #include<> 和#include“”的区别
- <input>里name和id的区别
- <%@ include file=""%>与<jsp:include page=""/>区别
- <MFC>CString和<C++>标准库string的区别,及判断字符串是否为空
- MyEclipse中使用VSS插件<转载>
- Hadoop新旧API区别2<转>
- Java Web开发2___<jsp:include>和<%@ include %>的区别
- #include命令, #include <>与#include ””的区别
- #include<>和#include“” 区别
- IQueryable<T>和IEnumerable<T>的区别
- TE PRACH-入网信令分析 <转载>
- <context-param>与<init-param>的区别与作用
- struts中<html:radio>标签默认选中的解决方法《转载》
- <转载>WdatePicker日历控件使用方法