JAVA中的运算符问题

一,+作为单目运算符时有何作用?二,&,|,^作为按位运算和逻辑运算有什么需要注意的地方?三,&&,||分别是逻辑短路与和逻辑短路或,请帮我解释一下这两个概念。四,<<,... 一,+作为单目运算符时有何作用?
二,&,|,^作为按位运算和逻辑运算有什么需要注意的地方?
三,&&,||分别是逻辑短路与和逻辑短路或,请帮我解释一下这两个概念。
四,<<,>>,>>>分别表示循环左移,循环右移和无符号右移。请帮我解释一下它们的概念。谢谢!
展开
 我来答
匿名用户
2013-09-15
展开全部
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的原码.
匿名用户
2013-09-15
展开全部
1: + 是连接2个字符串或者2个数字类型的想加
比如: "123" + "456" = 123456
123 + 456 = 579
2:二,&,|,^作为按位运算和逻辑运算有什么需要注意的地方?
且,或,非。 注意的地方 就是区分 下面那个短路的吧
3:三,&&,||分别是逻辑短路与和逻辑短路或,请帮我解释一下这两个概念。
这个“&&”短路“与” 因为“与”要左右两边都为true返回的才是true ,因此短路“与”意思
就是说如果第一个表达式是false就不去执行第二个表达式了。;
同样逻辑“或”只要任意一个为true返回的就是true,一次短路的“或”意思就是说如果第一个表达式是true就不去执行第二个表达式了,直接返回true,如果是false才去看下一个表达式。
4:四,<<,>>,>>>分别表示循环左移,循环右移和无符号右移
这个事C语言里面的吧,我没用过。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-15
展开全部
+ 是连接2个字符串或者2个数字类型的想加
比如: "123" + "456" = 123456
123 + 456 = 579
&& 是and的,并且的意思 一般用在判断里面
|| 是或者的意思。 也是用在if判断里面的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-15
展开全部
4:四,<<,>>,>>>分别表示循环左移,循环右移和无符号右移
java里面也有的。呵呵。和c里面的用法差不多意义也差不多。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式