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