Java中^什么含义

如题所述

给个例子,就明白了……
public static void main(String[] args){
System.out.println("^:位异域运算,规则相同为0(false),不同为1(true)");
System.out.println(true^true);
System.out.println(true^false);
System.out.println(false^false);
// 相当于 011110
// ^110010
// ---------------------
// 101100 (44)相同为0,不同为1
System.out.println(30^50);
}
===============运行结果=============
^:位异域运算,规则相同为0(false),不同为1(true)
false
true
false
44
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-07
首先声明,我是菜鸟,但是这个除了在正则表达式中,其他地方我还真没用过
第2个回答  2012-05-07
在正则表达式里边^ 匹配字符串的开始
第3个回答  2012-05-07
异或运算符
第4个回答  2020-03-11
按位异或运算符
两个操作数中,如果两个相应位相同,则结果为0,否则为1
即:
0^0=0,
1^0=1,
0^1=1,
1^1=0
例如:
00101010^00010111=00111101
1)如果需使用一个整数的某些特定的位翻转,可使用另一个
相应位为1的操作数与原来的整数进行按位异或操作实现。
下面的例子对整数变量
ii的第四位翻转
int
revertFouth=ii^8;
其余位则没有变化
2)通过按位异或运算可以实现两个值的交换。而不使用临
时变量。例如交换两个整数a,b的值可通过下列语句实现:
int
a=15,b=24;
//a的最右边8位为00001111,b的最右边8位为00011000
//a和b其余位为0,下同
a=a^b;
//a的最右边8位为00010111,a=23
b=b^a;
//b的最右边8位为00001111,b=15
a=a^b;
//a的最右边8位为00011000,a=24
*位逻辑运算表达式返回两个操作数中数据长度较长的数据
类型
其中较小的左侧将被填满,若为整数,则填满0,
若为负数,则左侧填满1
首先复习一下异或运算(^)的性质:它满足交换律、结合律。
此处有一个经典的运用:现在有一万(1-10000)的个数
,从中拿掉
一个数,问怎么才能找出拿掉的数


最初的数组是
A,
拿掉
x
之后的数组是
B,
xor()
是对数组内所有元素做异或,则有:
xor(A)
==
xor(B)
^
x
Fake代码
xor(A)
==
xor(B)
^
x
Fake代码
xor(A)
==
xor(B)
^
x
xor(A)
==
xor(B)
^
x
所以:
xor(B)
^
xor(A)
==
xor(B)
^
xor(B)
^
x
==
0
^
x
==
x
Fake代码
xor(B)
^
xor(A)
==
xor(B)
^
xor(B)
^
x
==
0
^
x
==
x
Fake代码
xor(B)
^
xor(A)
==
xor(B)
^
xor(B)
^
x
==
0
^
x
==
x
xor(B)
^
xor(A)
==
xor(B)
^
xor(B)
^
x
==
0
^
x
==
x
结论:
A

B
两个数组共
19999
个数,全部用来做异或,结果就是去掉的那个数
x。
(注:设
A
=
{a1,
a2,
a3,
....
a10000},

array_xor(A)
=
a1
^
a2
^
a3
^
...
^
a10000

java 里的 "^" 符号是什么意思?
^符号是位逻辑运算符里的按位异或,只有在两个比较的位不同时结果是1,否则为0.分析:9 二进制:1 0 0 1 2 二进制:0 0 1 0 9^2 结果: 1 0 1 1 转换为十进制:8+2+1=11 楼主明白了没?

java中的 ^ 是什么意思
运算符 含义 示例 ~ 按位非(NOT) b = ~a & 按位与(AND) c = a & b | 按位或(OR) c = a | b ^ 按位异或(XOR) c = a ^ b >> 右移 b = a >> 2 >>> 右移,左边空出的位以0填充 b = a >>...

java中正则表示式:"^[\\s&&[^\\n]]*\\n" 是什么意思?
java中正则表示式:"^[\\\\s&&[^\\\\n]]*\\\\n" 是什么意思? 楼主,你这个我也看不太明白。首先要说明一点,正则表示式是用来匹配给定格式的字串,不会出现你的说什么除去啊或者交集什么的。不过我可以给你一点提示,“^”是表示输入的开始,“*”表示不出现或出现一次及以上,\\s本来是表示空白...

^是什么意思?
第二 :^也可以表示特殊的二元运算符——逐位逻辑运算符(用于对数据的位进行操作),它表示的含义是逐位非或,要求两个整型操作数。从最小(即最右)的位开始,对操作数逐位操作;如果只有其中一个位为1,那么结果为1;否则为0。例如:x → 0000 0000 1011 1111 y → 0000 1111 0101 1111 x...

JAVA位运算符
位操作符允许我们操作一个基本数据类型中的整数型值的单个“比特(bit)”,即二进制位。位操作符会对两个参数对应的位执行布尔代数运算,并最终生成一个结果。 位操作符来源于 C 语言面向底层的操作,那时我们经常需要直接操纵硬件,设置硬件寄存器内的二进制位。Java的设计初衷是嵌入电视机顶盒内,所以这种低级操作仍...

java基础都有那些?
java中一些赋以特定含义,用作专门用途的关键的字符串成为关键字(keyword);且大多数编辑器都会将关键字用特殊方式标出 所有java关键字都是小写英文 一些常用关键字: 三、java的基本数据类型 1.java常量 java的常量值用字符串表示,区分为不同的数据类型。如:整型常量:1234实型常量:3.14字符常量:’a’逻辑常量:true...

在正则表达式中\\\\.和.有什么区别?
一、作为Java的转义字符 1.在Java中,反斜杠(\\)是一个特殊的字符,被称为转义字符,它的作用是用来转义后面一个字符。转义后的字符通常用于表示一个不可见的字符或具有特殊含义的字符,例如换行(\\n)、回车符(\\r)、制表符(\\t)。2.在Java中以下字符都有特殊意义,无法直接表示 单引号:char c ...

Java编程中的[ ]和{ }是表示什么意思?
(2)public void a(){} 这里的{}表示方法体,凡是在{}中的内容均是方法的实体。【注意】我们可以在程序的任何合法语句两侧加{},例如:{int a = 0;},这个等价于int a = 0;也就入上所说,他是程序的一个“边界”,并没有实际的运行意义,只是把程序分隔成模块,是一种固定的写法。

java中反斜杠的含义
\/\/代表的的是注释,就是你有哪句不明白的程序,你可以在这写上注释,以后 看的时候方便你理解。在工作中一般都会写上一段程序的 作者、时间、功能 同类的是\/** *\/也是注释 \/\/是对一句的\/** *\/对一段代码的 randshape是Shapes类中的一个方法。你这段程序不太完整,比如里面的return new...

JAVA中转义字符'\\t'的含义?
\\t :横向制表(HT) (跳到下一个TAB位置)。\\t是补全当前字符串长度到8的整数倍,最少1个最多8个空格,补多少要看你\\t前字符串长度。比如当前字符串长度10,那么\\t后长度是16,也就是补6个空格。如果当前字符串长度12,此时\\t后长度是16,补4个空格。

相似回答