本文目录一览:
- 1、java中的(或运算,异或运算,与运算)解释下
- 2、异或的逆运算
- 3、java取反运算符
- 4、JAVA字符串异或
- 5、JAVA中如何对一个字符串里的字符做异或运算,例如,字符串A=cghjhgfgsdyugh;第一步
- 6、java中异或是怎样算的
java中的(或运算,异或运算,与运算)解释下
java中或运算、异或运算、与运算的使用实例和解释如下:
public class Test { public static void main(String[] args) {
// 1、左移( )
// 0000 0000 0000 0000 0000 0000 0000 0101 然后左移2位后,低位补0:
// // 0000 0000 0000 0000 0000 0000 0001 0100 换算成10进制为20 System.out.println(5 2);// 运行结果是20
// 2、右移( ) 高位补符号位
// 0000 0000 0000 0000 0000 0000 0000 0101 然后右移2位,高位补0:
// 0000 0000 0000 0000 0000 0000 0000 0001
System.out.println(5 2);// 运行结果是1
// 3、无符号右移( ) 高位补0
// 例如 -5换算成二进制后为:0101 取反加1为1011
// 1111 1111 1111 1111 1111 1111 1111 1011 /
/ 我们分别对5进行右移3位、 -5进行右移3位和无符号右移3位:
System.out.println(5 3);// 结果是0
System.out.println(-5 3);// 结果是-1
System.out.println(-5 3);// 结果是536870911
// 4、位与( )
// 位与:第一个操作数的的第n位于第二个操作数的第n位如果都是1,那么结果的第n为也为1,否则为0
System.out.println(5 3);// 结果为1
System.out.println(4 1);// 结果为0
// 5、位或( | )
// 第一个操作数的的第n位于第二个操作数的第n位 只要有一个是1,那么结果的第n为也为1,否则为0
System.out.println(5 | 3);// 结果为7
// 6、位异或( ^ )
// 第一个操作数的的第n位于第二个操作数的第n位 相反,那么结果的第n为也为1,否则为0
System.out.println(5 ^ 3);//结果为6
// 7、位非( ~ ) // 操作数的第n位为1,那么结果的第n位为0,反之。 System.out.println(~5);// 结果为-6 } }
异或的逆运算
异或的逆运算为同或。
异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位,所以异或常被认作不进位加法。
异或运算为:F = A'B+AB' = A⊕B ----- 当A、B不同时,F=1; 当 A、B相同时,F=0。
同或运算为 : F = AB+A'B' = A☉B ----- 当A、B相同时,F=1;当A、B不同时,F=0。
因此异或的逆运算为同或。
扩展资料:
异或运算规则
1、a ⊕ a = 0。
2、a ⊕ b = b ⊕ a。
3、a ⊕b ⊕ c = a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c。
4、d = a ⊕ b ⊕ c 可以推出 a = d ⊕ b ⊕ c。
5、a ⊕ b ⊕ a = b。
6、若x是二进制数0101,y是二进制数1011,则x⊕y=1110。
参考资料来源:百度百科-异或
参考资料来源:百度百科-同或
java取反运算符
我是这么理解的,如果按你说的,根据这种情况书上说两个衣服串相等时是false不等时是true说明!是先起作用的,也就是说先取反后进行比较,因为equals是判断前后是否相等,所以如果两个字符串相同,前面取反就是false
JAVA字符串异或
存在按位异或,就是根据数据在内存中的二进制数的存放形式进行异或操作,
但是不存在字符串的异或
如果在内存中的数据:01010101和10101010异或,结果就是11111111,然后再将
11111111转换成相应的数据输出结果
注意:Java中没有字符串的异或、与、或、非操作,不是C语言那样(除非是你自己定义异或操作)
JAVA中如何对一个字符串里的字符做异或运算,例如,字符串A=cghjhgfgsdyugh;第一步
Java代码:
public class test{
public static void main(String[] args) {
String source = "cghjhgfgsdyugh";
int ch = source.charAt(0);
for(int i=1; isource.length(); i++) {
ch ^= source.charAt(i);
}
System.out.printf("%d : %c\n", ch, ch);
}
}
运行测试:
28 :
java中异或是怎样算的
异或运算(^)都以二进制数据为基础进行的运算。也就是说当代码中使用到异或运算时,都会先将两个条件进行转换,转换成二进制数据后,再进行运算。异域中同位如果值相同(都是0或者都是1)则为0,不同(一个是0,一个是1)为1。
例如
int a=4;
int b=6;
int c = a^b;//c的值是a和b的异或。值为2.过程
1、a的值二进制是
0000 0100 //这里去低8位,因为高位都一致。 2、b的值二进制是
0000 0110 3、异或后
0000 0010 //结果是2