java.math.BigInteger系列教程(四)BigInteger的诞生原因

为什么java里面要出现BigInteger类型呢?相信很多人有这个疑问,其实原因很简单,它可以表达更大范围的数值,远远比long表示的最大值还要大的多数。在整数类型里面,long可以表达最大值,如下所示:

1
2
3
4
5
6
7
public class Test
{
public static void main(String[] args)
{
System.out.println(Long.MAX_VALUE);
}
}

结果为:9223372036854775807
  而使用BigInteger,则可以表示更大的值,理论上只要你内存足够大,就能,如下面的例子:

 
1
2
3
4
5
6
7
8
9
10
public class Test
{
public static void main(String[] args)
{
BigInteger a= BigInteger.valueOf(9223372036854775807L);
BigInteger b= BigInteger.valueOf(9223372036854775807L);
BigInteger c=a.add(b);
System.out.println(c.toString());
}
}

结果为:18446744073709551614

  因为BigInteger没有重载"+","-","*",“/”, “%”这五个运算操作符,是不能直接进行数据运算的,需要调用它的相应方法:add,subtract,multiply,divide,remainder。

Java版本的是:

package t0816;

import java.math.BigInteger;
public final class BigN {
public static BigInteger multiply(BigInteger m,int n) {
BigInteger sn = new BigInteger(Integer.toString(n));
BigInteger sqy = m.multiply(sn); //大数据的加减乘除用的是add、subtract、multiply、divide,remainder。
return sqy;
}
public static String calcNN(int n) {
if(n >= 0){
BigInteger one = new BigInteger(Integer.toString(1)); //1的初始化
for(int i=1;i <= n;i++) {
one = multiply(one,i); //调用上面的累成函数;大数据的累成
}
return one.toString();
}
else return null;
} public static void main(String arg[]) { //主函数
System.out.println(calcNN(13)); //这里直接装的13;
}
}

输出:6227020800

HW—可怕的阶乘n!__注意大数据函数的使用BigInteger的更多相关文章

  1. 常用API(包装类、System、Math、Arrays、大数据运算)

    常用API 今日内容介绍 u 基本类型包装类 u System u Math u Arrays u BigInteger u BigDecimal 第1章 基本类型包装类 大家回想下,在第二天我们学习 ...

  2. java基础(17):包装类、System、Math、Arrays、大数据运算

    1. 基本类型包装类 大家回想下,在第三篇文章中我们学习Java中的基本数据类型时,说Java中有8种基本的数据类型,可是这些数据是基本数据,想对其进行复杂操作,变的很难.怎么办呢? 1.1 基本类型 ...

  3. Random随机类(11选5彩票)BigInteger大数据类(华为面试题1000的阶乘)

    先上Java Web图 为了简化叙述,只写Java代码,然后控制台输出 使用[Random类]取得随机数 import java.util.Random; public class Fir { pub ...

  4. 【重磅推荐】腾讯Bugly2015年移动应用质量大数据报告

    2015年,随着移动智能设备的普及,移动端用户的增速明显放缓:相比之下,由于云服务.众筹平台.推广平台等基础设施和服务的不断改善,极大降低了创业的门槛,越来越多人投身于移动应用的创新创业中. 想让用户 ...

  5. Top100Summit全球案例研究峰会第一天总结——云计算和大数据

    很荣幸受邀参加Top100Summit全球软件案例研究峰会,这次的大会主题是<技术推动商业变革>,组委会从全国投稿的460多件案例中甄选出100件具有代表价值的案例,进行为期4天的分享,第 ...

  6. 从打车软件你能想到多少?盈利模式?商机?大数据?移动互联网蛋糕?生活方式改变withApp?

    物联网.云服务.大数据.. 淘宝.12306.卡通...一个产品改变一次生活方式. 打车app,无疑是改变生活方式的又一个产品.从打车软件,你能看到什么? 个人认为,打车软件值得各种投资方斥资,最重要 ...

  7. 开发入门,学Java还是学大数据?

    经常有人问,我想学习开发,到底是学Java好还是学大数据好?或者是,学习大数据还有必要学Java吗?      依我说,这个提问的标准答案是:两者都学.      先来甩两张图.      一张是腾讯 ...

  8. 这份书单,给那些想学Hadoop大数据、人工智能的人

    一.简单科普类 (文末附下载链接) 1.<人工智能:李开复谈AI如何重塑个人.商业与社会的未来图谱2> 作者:李开复,王咏刚 推荐理由:文章写得一般,但李开复和王永刚老师总结的还可以,算国 ...

  9. 腾讯Bugly2015年移动应用质量大数据报告 原 荐

    在这份报告中,腾讯Bugly和腾讯优测会对2015年Android和iOS平台上的应用质量进行详细盘点,帮助你了解你的产品质量在行业中处于什么位置. 首先,让我们从整体上,回顾一下2015年度的应用和 ...

随机推荐

  1. 如何利用多核CPU来加速你的Linux命令

    原文出处: rankfocus   译文出处: 外刊IT评论 你是否曾经有过要计算一个非常大的数据(几百GB)的需求?或在里面搜索,或其它操作——一些无法并行的操作.数据专家们,我是在对你们说.你可能 ...

  2. A Tour of Go Channels

    Channels are a typed conduit through which you can send and receive values with the channel operator ...

  3. mysql登陆报错(ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2))

    部署mysql版本信息 version: 5.6.21 具体现象: mysql服务能够正常启动如下: [root@localhost ~]# service mysqld restart Shutti ...

  4. 转载.NET 4.0中的泛型的协变和逆变

    先做点准备工作,定义两个类:Animal类和其子类Dog类,一个泛型接口IMyInterface<T>, 他们的定义如下:   public class Animal { } public ...

  5. oracle强制使用索引

    select /*+ INDEX(表名,索引名称) */ col_1,...from xxx

  6. pyinstaller打包第一个wxPython程序HelloWorld

    pyinstaller 打包hello 7Mb ================= www.pyinstaller.org pip install pypiwin32 pip install pyin ...

  7. ECSHOP在线手册布局参考图--通用活动页 group_list.dwt等

        A.购物车 1,设置方法 程序自动读取购物车的商品数量 2,代码相关 cart.lbi 中 {insert_scripts files='transport.js'} <div clas ...

  8. ECSHOP在线手册布局参考图--商品分类页 category.dwt

        A.购物车 1,设置方法 程序自动读取购物车的商品数量 2,代码相关 cart.lbi 中 {insert_scripts files='transport.js'} <div clas ...

  9. MinGW安装和使用总结

    0.前言 最近对开源编译平台和编译器产生了兴趣,借博客平台总结一些东西(包括minGW,eclipse,sourcery和GDB调试等内容).总感觉时间一长某些东西自己都会忘记,过段时间回头看看自己的 ...

  10. SUSE的SSHD配置及设置防火墙

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...