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