❶ java计算
(++a)的值是4;
(++a)--的值是4;
++((++a)--)的值为5;
所以b的值是5
这里只要分清前++/--和后++/--就ok了
❷ java中如何进行减法运算
setText(""+number1-number2);
因为java是从左到右处理的,在减法运算前有""字符串处理, java就会把之后的都当做字符串处理.改成
setText(""+(number1-number2));
如果减法运算在前面,比如 number1-number2 + "".这样是可以的
❸ java的与运算
&是位与运算,是每一位按位与进行运算。在内存比较紧张的时候,某些算法为了节省空间,可能在进行运算的时候采取位与运算,而且位与运算比普通的+ - * / 都要快,节省时间,提高效率
❹ java中&和&&是怎么运算的
& 和 && 相同点:
都表示“与”操作。这里的“与”和数学中的“与或非”中的“与”意义相同,都遵循“一假必假”原则。即“与”符号两边的元素只要有一个为假,"与"操作执行后的结果就为假。
& 和 && 的区别:
1)& 表示“按位与",这里的”位“是指二进制位(bit)。
例:十进制数字8 转化为二进制是:1000 ;数字9 转化为二进制是1001 。
则如有以下程序:
public class Test {
public static void main(String[] args) {
System.out.println(9 & 8);
}
}
输出结果应该是:8
原因:1001 & 1000 = 1000 。 计算机中一般1表示真,0表示假。最左边一位1&1=1,最右边一位1&0 = 0.
2) && 表示逻辑”与“ ,即java中的boolean值才可以存在于&&符号的左右两侧。
true && false = false ,true && true = true , 依旧是"一假必假"。
值的注意的是:&& 符号有所谓的“短路原则”,当 A && B 出现时,如果A经判断是假,那么B表达式将不会获得执行或被判断的机会。直接结果就为假。
注:关于十进制与二进制的转换,简单的说每四位可以遵循”8421“原则,1001即8+1=9,1011即8+2+1=11
❺ java的加减乘除运算
使用BigDecimal并且一定要用String来够造。
实现方法如下:
import java.math.BigDecimal;
/**
* 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精
* 确的浮点数运算,包括加减乘除和四舍五入。
*/
public class Arith{
//默认除法运算精度
private static final int DEF_DIV_SCALE = 10;
//这个类不能实例化
private Arith(){
}
/**
* 提供精确的加法运算。
* @param v1 被加数
* @param v2 加数
* @return 两个参数的和
*/
public static double add(double v1,double v2){
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.add(b2).doubleValue();
}
/**
* 提供精确的减法运算。
* @param v1 被减数
* @param v2 减数
* @return 两个参数的差
*/
public static double sub(double v1,double v2){
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.subtract(b2).doubleValue();
}
/**
* 提供精确的乘法运算。
* @param v1 被乘数
* @param v2 乘数
* @return 两个参数的积
*/
public static double mul(double v1,double v2){
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.multiply(b2).doubleValue();
}
/**
* 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到
* 小数点以后10位,以后的数字四舍五入。
* @param v1 被除数
* @param v2 除数
* @return 两个参数的商
*/
public static double div(double v1,double v2){
return div(v1,v2,DEF_DIV_SCALE);
}
/**
* 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指
* 定精度,以后的数字四舍五入。
* @param v1 被除数
* @param v2 除数
* @param scale 表示表示需要精确到小数点以后几位。
* @return 两个参数的商
*/
public static double div(double v1,double v2,int scale){
if(scale<0){
throw new IllegalArgumentException(
"The scale must be a positive integer or zero");
}
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}
/**
* 提供精确的小数位四舍五入处理。
* @param v 需要四舍五入的数字
* @param scale 小数点后保留几位
* @return 四舍五入后的结果
*/
public static double round(double v,int scale){
if(scale<0){
throw new IllegalArgumentException(
"The scale must be a positive integer or zero");
}
BigDecimal b = new BigDecimal(Double.toString(v));
BigDecimal one = new BigDecimal("1");
return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}
};
❻ Java实现数字运算
说个思路吧:
1、double 数组排序,
2、去到大于80的数组元素下标,根据这个下标x 做出一个long y型数据,这个数据的二进制表示全是11111111111111111111111....这个方式
3,y不停减1,long型数据就会有位出现0了,当有35个位置为1时,就可以分别取得相应的位数和数组元素分别相乘累加,如果正好等于80,那么就是你要求的数字,分别打印出来就行了
❼ java中的运算++顺序
int x = -1;
int y =
x++
+
++x ;
我教你一个法,你把程序写成上面的形式,在调试可以看出,程序给先计算x++ 在 ++x 然后它会把 x++运算的结果赋给y。如果 int y = ++x + x++;结果是一样的。
❽ java中“%”和“/”分别执行什么运算 要详细
% 取余数, 比如10%3 结果为1
/ 除法,取整,比如10/3 结果为3
❾ java运算符
x和y都是整型,所以x/y也是整型,向下取整(-64)/(-6)=10;
x%y=x-y*Math.floor(x/y),(-64)%(-6)=-64-(-6*10)=-4;
❿ Java运算
自减的优先级大于算术运算符的