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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

余仿辉

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

自学时,看到这个运算感到非常不解,想请教各位大神。首先,&,||,^是逻辑运算符,也即进行逻辑运算的符号,运算结果为真或假,参与运算的内容必定可以判断真假。比如int x=4;x>3 & x<5;可以判断运算符两边内容真假值。但是如题,6&3两边怎么判断真假值呢?你可能会说,此时&是位运算符,而非逻辑运算符,尽管符号仍然是这个符号,但是其意义不同于作为逻辑运算符的&,但是在做位运算符使用时,比如6&3等价于110&011=010,在得出010这一步中,&仍然作为逻辑运算符号被使用,看不出作为位运算符的&具有什么不同于其作为逻辑运算符的意义。求教了。。。

15 个回复

倒序浏览
不会java 发表于 2014-9-27 11:17
你把逻辑运算符和位运算符搞混了。
还有你问的是js的特性呢 还是java的特性呢。 ...

就是java基础视频课程里面讲的
回复 使用道具 举报
不会java 发表于 2014-9-27 11:17
你把逻辑运算符和位运算符搞混了。
还有你问的是js的特性呢 还是java的特性呢。 ...

js的特性???Java的特性???不明白诶
回复 使用道具 举报
是不是可以这样理解。运算符是伴随着要运算的内容而产生的。比如+,首先要有可以加的对象,+才具有意义。当要运算的数据是boolean型,&具有我们所理解的逻辑意义。而当要运算的数据是数值时,&所具有的意义就不是逻辑意义了,因此不能像理解逻辑运算那样去理解位运算,否则就会产生问题。
回复 使用道具 举报
&是位运算符,就是把两边的数字按照二进制来进行每位的与运算,&&才是逻辑运算符,要求两边是Boolean类型
回复 使用道具 举报
主要是数据的类型不同吧,
回复 使用道具 举报
new999 中级黑马 2014-10-2 10:07:25
7#
位运算符 &,如6&3等价于0b00000110&0b00000011=0b00000010
回复 使用道具 举报
刘冬 中级黑马 2014-10-2 20:33:15
8#
int x=4 不是判断两边内容真假值吧! x==4才是
回复 使用道具 举报
Afridoce 来自手机 高级黑马 2014-10-4 01:39:36
9#
因为这些运算符也是函数的重载。但你只要知道能这么用就行了
回复 使用道具 举报
Afridoce 来自手机 高级黑马 2014-10-4 01:41:29
10#
比如+号可以用于加法运算,也可以用于字符串的连接,原因都是+号的函数重载进行实现的
回复 使用道具 举报
Afridoce 来自手机 高级黑马 2014-10-4 01:43:57
11#
你可以去了解一下这些运算符的重载你就懂了。
回复 使用道具 举报
希筱诺 来自手机 中级黑马 2014-10-4 10:54:31
12#
位运算符不仅有判断也会得到一个数,结果,而逻辑运算符只是判断
回复 使用道具 举报
单&的时候是位运算符,把数换算成二进制,然后再把两个数进行运算,如果对应的位置上都是1的话,结果就取1,否则结果取0,最后算出结果,再换算回十进制。
回复 使用道具 举报
逻辑运算得出真假,位运算求具体值,应该是这样的差别吧……话说我也是新手,太具体的不懂,只得出这个结论……
回复 使用道具 举报
&判断中真真为真,真假为假,假假为假。你可以把0看做假,1看做真,然后做相应的判断就可以了。6的二进制是110,3的二进制是011,首先1和0是真假为假,结果是0,第二位1和1真真为真,结果是1,最后一位还是真假为假。所以最后结果为:010,也就是十进制数:2。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马