❶ 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運算
自減的優先順序大於算術運算符的