Java中操作超大数的方法
时间:2019-04-20
本文章向大家介绍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 = 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();
- Spring Cloud中Hystrix的服务降级与异常处理
- Open vSwitch源码解析之基于VxLAN实现NSH解析功能
- Spring Cloud自定义Hystrix请求命令
- JavaScript面试问题:事件委托和this
- Spring Cloud中的断路器Hystrix
- js的隐含参数(arguments,callee,caller)使用方法
- Spring Cloud中的负载均衡策略
- Spring Cloud中负载均衡器概览
- 没有event loop的PHP
- RestTemplate的逆袭之路,从发送请求到负载均衡
- limit_area_cirle
- Spring RestTemplate中几种常见的请求方式
- 什么是客户端负载均衡
- jQuery 升级踩坑大全
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释