JAVA中的运算符问题
发布网友
发布时间:2022-04-24 22:16
我来回答
共4个回答
热心网友
时间:2023-10-13 01:06
1. "+"如果是数值运算 int a = 1,b = 2;则a + b = 3 如果是2个字符串相加 其功能就是 String a = "a",b = "b";则a + b = "ab";
2.位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果。
位运算符有:
&(按位与)、|(按位或)、^(按位异或)、~ (按位取反)。
其中,按位取反运算符是单目运算符,其余均为双目运算符。
位运算符的优先级从高到低,依次为~、&、^、|,
其中~的结合方向自右至左,且优先级高于算术运算符,其余运算符的结合方向都是自左至右,且优先级低于关系运算符。
按位与运算将两个运算分量的对应位按位遵照以下规则进行计算:
0 & 0 = 0, 0 & 1 = 0, 1 & 0 = 0, 1 & 1 = 1。
即同为 1 的位,结果为 1,否则结果为 0。
逻辑运算 (logical operators) 通常用来测试真假值。最常见到的逻辑运算就是循环的处理,用来判断是否该离开循环或继续执行循环内的指令。
< 小于; > 大于;<= 小于或等于;>= 大于或等于;== 等于;!= 不等于;&& 而且 (And);and 而且 (And);|| 或者 (Or);or 或者 (Or);xor 异或 (Xor);! 不 (Not)
3. && 表示前后2个条件一定要同时满足 才能为真 有一个条件为假的时候就是假 则不执行
一般用在
if(x > 0 && y > 0)
{
System.out.print("x和y都是大于0");
}
else
{
System.out.print("x和y中有一个不是正数");
}
"||"这个“或”呢
属于条件取舍型的,也就是说c = a||b 只要a或者b为真的时候 这条表达式c就是为真
4.
右移
System.out.println(-3>>1);
结果是-2,为什么会是-2呢?下面我们来看一下.
System.out.println(Integer.toHexString(-3));得到-3的16进制为fffffffd(此为-3的补码,计算机中负数用补码表示).
转换成2进制为1111 1111 1111 1111 1111 1111 1111 1101
右移一位为1111 1111 1111 1111 1111 1111 1111 1110,显而易见此为-2补码.
左移
System.out.println(-3<<1);左移相对来说比较简单.
1111 1111 1111 1111 1111 1111 1111 1101左移一位为
1111 1111 1111 1111 1111 1111 1111 1010,其为-6的补码.
无符号右移
System.out.println(-3>>>1);
1111 1111 1111 1111 1111 1111 1111 1101无符号右移,高位补0,
01111 1111 1111 1111 1111 1111 1111 1110,其为2147483646的原码.
热心网友
时间:2023-10-13 01:06
1: + 是连接2个字符串或者2个数字类型的想加
比如: "123" + "456" = 123456
123 + 456 = 579
2:二,&,|,^作为按位运算和逻辑运算有什么需要注意的地方?
且,或,非。 注意的地方 就是区分 下面那个短路的吧
3:三,&&,||分别是逻辑短路与和逻辑短路或,请帮我解释一下这两个概念。
这个“&&”短路“与” 因为“与”要左右两边都为true返回的才是true ,因此短路“与”意思
就是说如果第一个表达式是false就不去执行第二个表达式了。;
同样逻辑“或”只要任意一个为true返回的就是true,一次短路的“或”意思就是说如果第一个表达式是true就不去执行第二个表达式了,直接返回true,如果是false才去看下一个表达式。
4:四,<<,>>,>>>分别表示循环左移,循环右移和无符号右移
这个事C语言里面的吧,我没用过。
热心网友
时间:2023-10-13 01:07
+ 是连接2个字符串或者2个数字类型的想加
比如: "123" + "456" = 123456
123 + 456 = 579
&& 是and的,并且的意思 一般用在判断里面
|| 是或者的意思。 也是用在if判断里面的
热心网友
时间:2023-10-13 01:07
4:四,<<,>>,>>>分别表示循环左移,循环右移和无符号右移
java里面也有的。呵呵。和c里面的用法差不多意义也差不多。