欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

Java中操作超大数的方法

时间:2021-03-15 09:51:01|栏目:JAVA代码|点击:

我们知道Integer的最大值是 2^31 - 1,Long最大值是 2^63 -1

不管是32位机还是64位机都是这样

通常来说我们要操作一个大于 Integer最大值的数的时候会用 Long来进行

但万一我们遇到一个比 Long的最大值还大的数怎么办呢?

BigInteger

这种情况还是会出现的,对于操作超大数的情况 Java提供了 BigInteger类,使用时需要实例化一个 BigInteger对象,调用它的运算方法进行加减等操作。

下面举个例子说明

操作 UUID

我们知道在Android设备中经常用 anroid_id 来表示设备的唯一性

一般在安装 app的之后第一次启动时会调用下面的代码来生成一个设备编号

String private_id = Settings.Secure.getString(getContext().getContentResolver(), Settings.Secure.ANDROID_ID);

然后把字符串通过持久化储存放到文件系统或者数据库中,日活等指标都可以依据这个来标识。

它的值通常是个十六进制数,比如

AF84C9117B6C98D2

把它转成十进制是

12647454730485537000

这已经超出了Long最大值的范围 9223372036854776000

然后我们想在原有 android_id的基础上简单加密一下,比如加个随机数上去什么的

String private_id = Settings.Secure.getString(getContext().getContentResolver(), Settings.Secure.ANDROID_ID);
BigInteger androidId = new BigInteger(private_id, 16);
Random random = new Random();
BigInteger result = androidId.add(new BigInteger(String.valueOf(random.nextInt(10000)), 10));
String hex = result.toString();

上一篇:JDBC中使用Java8的日期LocalDate和LocalDateTime操作mysql、postgresql

栏    目:JAVA代码

下一篇:java实现MD5加密算法的实例代码

本文标题:Java中操作超大数的方法

本文地址:http://www.codeinn.net/misctech/81124.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有