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/n/285642.html
微信扫一扫
支付宝扫一扫