已采纳回答 / 杯酒慰风尘_如是很多年
&跟&&都可以进行与运算,只不过&是位运算,&&是逻辑运算。而且&&具有“短路”的特性,即当&&左边判断为false是就不再对右边的表达式进行运算。
2018-06-12
已采纳回答 / 慕粉3388790
00000000 00000000 00011111 11001111>>8= 00000000 00000000 00000000 00011111& 00000000 00000000 00000000 11111111= 00000000 00000000 00000000 00011111
2018-03-16
已采纳回答 / jisu_che
0xff就是八个1的二进制数,arr[i]是一个byte型整数,把其左移到相应的高位,再强制转换为interesting类型,并累加到result中
2018-02-07
已采纳回答 / Hinstro
A=A^B;B=A^B=(A^B)^B=A^(B^B)=A^0=A;A=A^B=(A^B)^A=(A^A)^B=0^B=B;∵一个数“异或”本身时等于0
2017-12-07
已采纳回答 / 诸葛云飞
在本节中11001111是存放在字节byte中的,字节是8位,java中最高位表示符号位,所以byte的取值范围是-2^7~2^7-1,即1000 0000~0111 1111,十进制是-128~127.11001111(看作无符号十进制是207),这是补码,原码为00110001(看作无符号十进制是49),如果你把这个想象为无符号的(十进制也要想象为无符号,即-49为49),那相加为1 0000 0000即2^8=256,即所有的负值的byte的补码和源码想象为无符号的话之和为256
2017-12-01
已采纳回答 / Kian_
在计算机中数都是以二进制存在的,你也说了2的二进制为10,其实前面省略了,在java中int型占4个字节,32位,所以2的二进制位 0000 0000 0000 0000 0000 0000 0000 0010 老师讲的时候其实是把前面的0省略了, 这样你再左移,能力有限,只能跟你这样解释 ~.~
2017-07-03
已采纳回答 / enthusiastic
可以不加int,我没加代码运行也没问题,但是与操作不能少,另外byte强制类型转换也不能少。因为id是int类型,从范围大的类型到范围小的类型需要强制类型转换。arr[0]=(byte)((id>>0*8)&0xff);
2017-01-29