A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 紫水 中级黑马   /  2014-6-19 10:00  /  627 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

谁能说下逻辑运算符如何运用和计算吗,如何10&1 应该等于多少呢?10&&2等于多少呢? 这些是如何计算的呢??

2 个回复

倒序浏览
本帖最后由 黎志勇 于 2014-6-19 10:18 编辑

10在内存中的表示形式是00000000 00000000 00000000 00001010,
1在内存中的表示形式为00000000 00000000 00000000 00000001
然后进行按位与运算
      00000000 00000000 00000000 00001010
&   00000000 00000000 00000000 00000001
-------------------------------------------------------
      00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000表示0。
所以10&1的运算结果是0。
至于10&&2,根本运算不了,&&操作符两边的参数只能是boolean类型。
回复 使用道具 举报
本帖最后由 郑飞 于 2014-6-19 13:43 编辑

10&&2 不是位运算,是双与运算(应该把&&两边的表达式看成,或者转成布尔值,然后计算结果)
双与运算有短路效果,当左边表达式可以确定结果的时候,就不用计算右边的,效率比单与略高.

位运算 其实就是将要运算的数转成2进制 然后进行每一位进行&计算:
举个明显点的例子:    21&9
        10101
  &   01001
-----------------    所以 21&9 =3   
        00011        
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马