第一次面试总结(long精度溢出,BigInteger的基本运算):

第一天面试,第一题就让我很疑惑,题是这样的:
long a = 2^64-1;
那么a*a怎么保存;
回来冥思苦想,查资料,一直都没有找到答案,最后整合了一下,终于解决了。

		Long a = Long.MAX_VALUE;
		String b = String.valueOf(a);
		BigInteger x = new BigInteger(b);
		BigInteger y = x.multiply(x);
		System.out.println(y);

结果就出来了,可以使用BigInteger来进行存储,再使用相应的方法就解决了。
总结一下BigInteger的基本运算:

	public void testDemo() {
		//基本运算:add(),subtract(),multiply(),divide(),mod(),remainder(),pow(),abs(),negate()
		BigInteger a = new BigInteger("13");10
		BigInteger b = new BigInteger("4");6
		int n = 3;


		//1.加
		BigInteger num1 = a.add(b);			//答案:16
		//2.减
		BigInteger num2 = a.subtract(b);		//答案:4
		//3.乘
		BigInteger num3 = a.multiply(b);		//答案:60
		//4.除
		BigInteger num4 = a.divide(b);		//答案:1
		//5.取模(需 b > 0,否则出现异常:ArithmeticException("BigInteger: modulus not positive"))
		BigInteger num5 = a.mod(b);			//答案:4
		//6.求余
		BigInteger num6 = a.remainder(b);	//答案:4
		//7.平方(需 n >= 0,否则出现异常:ArithmeticException("Negative exponent"))
		BigInteger num7 = a.pow(n);			//答案:1000
		//8.取绝对值
		BigInteger num8 = a.abs();			//答案:10
		//9.取相反数
		BigInteger num9 = a.negate();		//答案:-10
	}

这里要提到一点,BigInteger使用时需要构造一个BigInteger 对象,也就是使用new关键字。
还是知识储备不够,今天还是学到了一些关于BigInteger的相关知识。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值