java biginteger 运算_用Java的大整数类BigInteger来实现大整数的一些运算

本文介绍了Java中BigInteger类的构造方法及其在大数运算中的应用,包括加减乘除、比较和转换。示例展示了如何将二进制字符串转换为十进制的BigInteger,并使用compareTo方法进行大小比较。此外,还提到了大整数的绝对值计算、幂次方以及不同进制的字符串表示。文章还简要提到了BigDecimal类在高精度计算中的作用。
摘要由CSDN通过智能技术生成

关于BigInteger的构造函数,一般会用到两个:

BigInteger(String val); //将指定字符串转换为十进制表示形式;

BigInteger(String val,int radix); 将指定基数的 BigInteger 的字符串表示形式转换为 BigInteger。

例如val是二进制字符串,想把它转换成十进制的BigInteger,可以这样写:

String val = "01101";

BigInteger s = new BigInteger(val, 2);

比较大小的时候要用到compareTo

import java.io.*;

import java.util.*;

import java.math.*;

public class Main {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

BigInteger a, b;

while(sc.hasNext()) {

a = sc.nextBigInteger();

b = sc.nextBigInteger();

System.out.println(a.add(b));//大整数加法

System.out.println(a.subtract(b));//减法

System.out.println(a.multiply(b));//乘法

System.out.println(a.divide(b));//除法

System.out.println(a.remainder(b));//取模

//大整数的比较

if(a.compareTo(b) == 0)

System.out.println("a == b");

else if(a.compareTo(b) > 0)

System.out.println("a > b");

else if(a.compareTo(b) < 0)

System.out.println("a < b");

//大整数的绝对值

System.out.println(a.abs());

//计算大整数的幂次方

int exp = 10;

System.out.println(a.pow(exp));

//返回大整数十进制的字符串表示

System.out.println(a.toString());

//返回大整数p进制的字符串表示

int p = 8;

System.out.println(a.toString(p));

}

sc.close();

}

}

Java 大数类BigInteger和BigDecimal的基本函数

在Java中有两个类BigInteger和BigDecimal分别表示不可变的任意精度的整数和不可变的有符号的任意精度的十进制数(浮点数).主要用于高精度计算中.这两个类使得java中的大数,高精度运 ...

Java开发笔记(二十九)大整数BigInteger

早期的编程语言为了节约计算机的内存,给数字变量定义了各种存储规格的数值类型,比如字节型byte只占用一个字节大小,短整型short占用两个字节大小,整型int占用四个字节大小,长整型long占用八个字 ...

Java基础学习笔记之:System类&semi;Math类&semi;Arrays类BigInteger,BigDecimal

System类 在API中System类介绍的比较简单,我们给出定义,System中代表程序所在系统,提供了对应的一些系统属性信息,和系统操作.System类不能手动创建对象,因为构造方法被priva ...

Java 之 数学相关类 Math、BigInteger、BigDecimal

一.java.lang.Math 类 一.Math 类概述 java.lang.Math 类包含用于执行基本数学运算的方法,如指数.对数.平方根和三角函数.类似于这样的类,其所有方法均为静态方法,并且 ...

C&num; 基于大整数类的RSA算法实现(公钥加密私钥解密,私钥加密公钥解密)

但是C#自带的RSA算法类RSACryptoServiceProvider只支持公钥加密私钥解密,即数字证书的使用. 所以参考了一些网上的资料写了一个RSA的算法实现.算法实现是基于网上提供的一个大整 ...

N!的阶乘附带简单大整数类的输入输出(暂时没有深入的了解)

Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N! 我的思路:就想着大整数类去了,才发现自己还不能很好的掌握,其实这是一个大 ...

Java入门到精通——框架篇之Spring源码分析Spring两大核心类

一.Spring核心类概述. Spring里面有两个最核心的类这是Spring实现最重要的部分. 1.DefaultListableBeanFactory 这个类位于Beans项目下的org.spri ...

CoreJavaE10V1P3&period;9 第3章 Java的基本编程结构-3&period;9 大数值(Big Numbers)

如果基本的整型与浮点型不能满足需求,可以使用java.Math包提供的 BigInteger 和 BigDecimal 两个类,这两个类可以存储任意长度的数, BigInteger 实现的任意精度整数 ...

java复习&lpar;4&rpar;---数字处理类

java本身自带一些封装好的类方便数字问题的处理,review下方便以后使用 DecimalFormat类 可格式化数字格式,控制输出格式 Math类 提供三角函数.指数函数.取整函数.最大最小函数. ...

随机推荐

LintCode MinStack

Implement a stack with min() function, which will return the smallest number in the stack. It should ...

Django CRM &lowbar;&lowbar;contains与&lowbar;&lowbar;icontains区别

http://www.yihaomen.com/article/python/199.htm operators = { 'exact': '= %s', 'iexact': 'LIKE %s', ' ...

斯坦福第四课:多变量线性回归&lpar;Linear Regression with Multiple Variables&rpar;

4.1  多维特征 4.2  多变量梯度下降 4.3  梯度下降法实践 1-特征缩放 4.4  梯度下降法实践 2-学习率 4.5  特征和多项式回归 4.6  正规方程 4.7  正规方程及不可逆性 ...

viewpage图片轮播

package com.exmple.viewpage2; import java.util.ArrayList;import java.util.List;import java.util.Time ...

SPOJ &num;5 The Next Palindrome

"not more than 1000000 digits" means an efficient in-place solution is needed. My first so ...

zepto&period;js的基本介绍与使用

最近看到了一篇文章,是介绍一种新的js框架,名为zepto.js,他适用于移动设备已经桌面浏览器除了ie系列的.. 他兼容jquery的API,所以学起来或用起来并不吃力.他比jquery的优势在于1 ...

php调用webservice接口

项目中使用到了调用三方厂商webService接口.他的接口类似为http://haha.cn:86/BaseInfoService.svc?wsdl,在这里我注意到了"wsdl" ...

非常好用的弹出层 layer,常用功能demo,快速上手!

功能强大,实用,操作方便,文档齐全. 参数灵活,丰富.可以作为开发项目的公共模块,多处使用.老文档地址:http://layer.layui.com/api.html 已经停止维护 新文档地址:htt ...

redis主从复制入门案例

主从复制 特点: 1.master可以拥有多个slave 2.多个slave可以连接同一个master外,还可以连接到其他slave 3.主从复制不会阻塞master,在同步数据时,master可以继 ...

WAN口和LAN 口有什么区别

WAN口不能够用来连接电脑. LAN(1.2.3.4)口只能够用来连接电脑. 拓展资料 路由器(Router),是连接因特网中各局域网.广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径, ...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值