• 注册
当前位置:1313e > java >正文

Java中如何操作超大数

Java中如何操作超大数?

笔者曾就职与华为,腾讯,samsung,是一个资深码农,欢迎大家关注,转发

我们知道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的基础上简单加密一下,比如加个随机数上去什么的,

更多Java知识请关注我或者浏览我的往期分享,欢迎大家评论

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 162202241@qq.com 举报,一经查实,本站将立刻删除。

最新评论

欢迎您发表评论:

请登录之后再进行评论

登录
相关推荐