为了验证问题,我将或的值写死,打印出来数字不对,考虑到是不是超出值得范围了,换成了11|01或运算,就是对的,请问这个问题怎么解。
您的每一个用心回答,都会让这个世界变得更美好一些!
你这不是二进制呀。你以为只有0和1就是二进制了吗?
11-> 1011
01 -> 0001
(11 | 01) = 1011 | 0001 = 1011 -> 11
这种位运算应该是转为二进制字节码然后才运算的吧,在java中你直接那么写的不是二进制数;
01100001 代表8进制数 1100001
11000000 代表10进制数 11000000
进行 | 操作在机器内部是用他们的二进制码进行操作,而不是直接用 她两操作
可以用 0b01100001 | 0b11000000 表示这两二进制数进行 | 运算
System.out.println( 0b01100001 | 0b11000000 + "");
打印出的值是255,255的二进制码正是 11100001;
你这不是二进制呀。你以为只有0和1就是二进制了吗?
11-> 1011
01 -> 0001
(11 | 01) = 1011 | 0001 = 1011 -> 11
这种位运算应该是转为二进制字节码然后才运算的吧,在java中你直接那么写的不是二进制数;
01100001 代表8进制数 1100001
11000000 代表10进制数 11000000
进行 | 操作在机器内部是用他们的二进制码进行操作,而不是直接用 她两操作
可以用 0b01100001 | 0b11000000 表示这两二进制数进行 | 运算
System.out.println( 0b01100001 | 0b11000000 + "");
打印出的值是255,255的二进制码正是 11100001;