1、介紹
Java是一門面向對象、平台無關、具有良好可移植性的高級編程語言。作為一門廣泛應用於企業級後台開發、移動應用、遊戲開發等領域的語言,Java的計算操作是非常重要的一部分。
2、正文
1)基本算術運算
Java提供了加、減、乘、除、取模等基本算術運算符,可以直接用於數字類型(byte,short,int,long,float,double)的計算。如:
int a = 10;
int b = 5;
int sum = a + b; // 加
int diff = a - b; // 減
int product = a * b; // 乘
int quotient = a / b; // 除
int remainder = a % b; // 取余
2)自增自減運算符
Java提供了自增(++)和自減(–)運算符,可以對變數進行加一或減一操作。如:
int a = 10;
a++; // 等價於 a = a + 1;
int b = 5;
b--; // 等價於 b = b - 1;
3)數學函數
Java中也提供了大量的數學函數,如sin、cos、tan、sqrt、pow等,可以進行更加複雜的數學計算。這些函數都在Java.lang.Math類中。如:
double x = 2.0;
double y = Math.sin(x);
double z = Math.pow(x, 2);
4)位運算符
Java中也提供了位運算符,可以直接對二進位數字進行處理。
- & 按位與:兩個位都為1,結果才為1
- | 按位或:兩個位都為0,結果才為0
- ^ 按位異或:兩個位相同,結果為0,否則為1
- ~ 按位非:0變1,1變0
- << 左移:將二進位數向左移動指定的位數
- >> 右移:將二進位數向右移動指定的位數,符號位不變
- >>> 無符號右移:將二進位數向右移動指定的位數,符號位也跟著移
int a = 60;
int b = 13;
int c = a & b; // 12 (二進位 1100)
int d = a | b; // 61 (二進位 111101)
int e = a ^ b; // 49 (二進位 110001)
int f = ~a; // -61
int g = a <> 2; // 15
int i = a >>> 2; // 15
3、小標題
1)BigInteger和BigDecimal類
在Java中,只要數據類型足夠大,可以表示任何數字。但是,在涉及到大數字的時候,會遇到一些問題。例如,在處理貨幣的時候,浮點數的計算往往會出現精度問題。
Java中提供了兩個類分別為BigInteger和BigDecimal,用於處理較大的整數和浮點數。如:
BigInteger bigInt = new BigInteger("1000000000000000000000000000000000000000000000000000");
BigDecimal bigDec = new BigDecimal("123.4567890123456789");
2)NaN和Infinity
在Java中,浮點數的計算可能會得到NaN(Not a Number)和Infinity(無窮大)這樣的結果。NaN表示數字無法確定,Infinity表示數字太大或太小,無法表示。
double a = 0.0 / 0.0; // NaN
double b = 1.0 / 0.0; // Infinity
double c = -1.0 / 0.0; // -Infinity
4、代碼部分
public class MathDemo {
public static void main(String[] args) {
// 基本算術運算
int a = 10;
int b = 5;
int sum = a + b;
int diff = a - b;
int product = a * b;
int quotient = a / b;
int remainder = a % b;
System.out.println("和:" + sum);
System.out.println("差:" + diff);
System.out.println("積:" + product);
System.out.println("商:" + quotient);
System.out.println("餘數:" + remainder);
// 自增自減運算符
int c = 10;
c++;
System.out.println("自增:" + c);
int d = 5;
d--;
System.out.println("自減:" + d);
// 數學函數
double x = 2.0;
double y = Math.sin(x);
double z = Math.pow(x, 2);
System.out.println("sin(" + x + ")=" + y);
System.out.println("pow(" + x + ", 2)=" + z);
// 位運算符
int e = 60;
int f = 13;
int g = e & f;
int h = e | f;
int i = e ^ f;
int j = ~e;
int k = e <> 2;
int m = e >>> 2;
System.out.println("e&f=" + g + ", e|f=" + h + ", e^f=" + i + ", ~e=" + j + ", e<>2=" + l + ", e>>>2=" + m);
// BigInteger和BigDecimal類
BigInteger bigInt = new BigInteger("1000000000000000000000000000000000000000000000000000");
BigDecimal bigDec = new BigDecimal("123.4567890123456789");
System.out.println(bigInt);
System.out.println(bigDec);
// NaN和Infinity
double n = 0.0 / 0.0;
double o = 1.0 / 0.0;
double p = -1.0 / 0.0;
System.out.println("0.0/0.0=" + n);
System.out.println("1.0/0.0=" + o);
System.out.println("-1.0/0.0=" + p);
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/285642.html
微信掃一掃
支付寶掃一掃