&&和&以及|和||的区别

之前一直以为&&和&是一样的,最近在看SDWebImage源码的时候看到里面的写法,比较好奇就查了一下,尼玛坑爹啊,还真是不一样的!

&&是逻辑运算符,而&是按位运算符(||和|也一样以下只用&&和&为例),&&前后只用来判断0和非0,只要是非0,都按照1(YES)来看,切&&具有短路效应,即如果&&符号前的对象为0则符号后面的条件就不再判断;而&则不同,&是把符号前后的对象转为二进制,然后按位比较:以6和4为例:6&&4,符号前后都是非0,则返回1;而6&4,6的二进制为110,4的二进制为100,按位比较,则返回的二进制数为100,也就是4。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容