java处理⼤数_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 = String(getContext().getContentResolver(), Settings.Secure.ANDROID_ID);
然后把字符串通过持久化储存放到⽂件系统或者数据库中,⽇活等指标都可以依据这个来标识。
它的值通常是个⼗六进制数,⽐如
AF84C9117B6C98D2
把它转成⼗进制是
12647454730485537000
这已经超出了Long最⼤值的范围 9223372036854776000
然后我们想在原有 android_id的基础上简单加密⼀下,⽐如加个随机数上去什么的
String private_id = String(getContext().getContentResolver(), Settings.Secure.ANDROID_ID);
BigInteger androidId = new BigInteger(private_id, 16);
Random random = new Random();
BigInteger result = androidId.add(new BigInteger(String.Int(10000)), 10));
String hex = String();
java生成随机数的方法
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论