int表示32位整数,也就是说,用二进制表示出来它最多是32位
而你的a已经是32位的二进制数了,左移1位,变成33位,超过了int的表示范围。这个时候会产生“截断”,2^32
-
a
=
-4,就这是b的值
要将负数转换为正数(这称为绝对值),请使用Mathabs() 。 此Mathabs()方法的工作方式如下:“ number = (number < 0 -number : number); ”。
看一个完整的例子:
package com mkyong;
public class app{
public static void main(String[] args) {
int total=1+1+1+1+(-1);
//output 3
System out print1n("Total :”+ total);
int total2 =1+1+1+1+ Mathabs(-1);
//output 5
System out print1n("Total 2 (absolute value) :”+ total2) ;
}
}
输出量
Total : 3
Total 2 (absolute value) : 5
在这种情况下, Mathabs(-1)会将负数1转换为正数1。
-很简单阿,直接相加即可。
public class Test{
public static void main(String[] args){
double a = -3;
double b = -5;
double sum = a + b;
Systemoutprintln(s);
}
}
以上就是关于JAVA中关于负数的位异或运算全部的内容,包括:JAVA中关于负数的位异或运算、java怎么让一个正数变成负数、用JAVA写一个程序,求两个负数的和~~~等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)