加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

大数的计算

发布时间:2020-12-14 04:08:55 所属栏目:大数据 来源:网络整理
导读:最近由于系统的要求,需要做一个辅助的功能大数的十进制、十六进制的计算,在网上找到很多资料都不是很全面,所以我在此记录一下大数的计算器的后台的代码。 /** ?* 十进制的加、减、乘、除、mod、求逆的运算 ?* */ public class BigIntegerDemo { /** * 加

最近由于系统的要求,需要做一个辅助的功能大数的十进制、十六进制的计算,在网上找到很多资料都不是很全面,所以我在此记录一下大数的计算器的后台的代码。

/**
?* 十进制的加、减、乘、除、mod、求逆的运算
?* */
public class BigIntegerDemo {


/**
* 加法
* */
public static BigInteger add(String value1,String value2){

BigInteger b1=new BigInteger(value1);
BigInteger b2=new BigInteger(value2);
return b1.add(b2);

}

/**
* 减法
* */
public static BigInteger sub(String value1,String value2){

BigInteger b1=new BigInteger(value1);
BigInteger b2=new BigInteger(value2);
return b1.subtract(b2);
}

/**
* 乘法
* */
public static BigInteger mul(String value1,String value2){

BigInteger b1=new BigInteger(value1);
BigInteger b2=new BigInteger(value2);
return b1.multiply(b2);

}


/**
* 除法
* */
public static BigInteger div(String value1,String value2){

BigInteger b1=new BigInteger(value1);
BigInteger b2=new BigInteger(value2);
return b1.divide(b2);


}

/**
* 取模
* */
public static BigInteger mod(String value1,String value2){

BigInteger b1=new BigInteger(value1);
BigInteger b2=new BigInteger(value2);
return b1.mod(b2);


}

/**
* 求逆
* */
public static BigInteger inverse(String value1,String value2){

BigInteger b1=new BigInteger(value1);
BigInteger b2=new BigInteger(value2);

BigInteger modInverseValue;

try {
modInverseValue=b1.modInverse(b2);
} catch (Exception e) {

//当不能求逆的时候返回的值为0

modInverseValue=new BigInteger("0");
}
return modInverseValue;
}


}


/** ?* 十六进制的加、减、乘、除、mod、求逆的运算 ?* */ public class HexBigInteger { /** * 加法 * */ public static String add(String value1,String value2){ BigInteger b1=new BigInteger(value1,16); BigInteger b2=new BigInteger(value2,16); ? ?BigInteger addValue= BigIntegerDemo.add(b1.toString(10),b2.toString(10)); return addValue.toString(16); } /** * 减法 * */ public static String sub(String value1,16); BigInteger subValue= BigIntegerDemo.sub(b1.toString(10),b2.toString(10)); return subValue.toString(16); } /** * 乘法 * */ public static String mul(String value1,16); BigInteger mulValue= BigIntegerDemo.mul(b1.toString(10),b2.toString(10)); return mulValue.toString(16); } /** * 除法 * */ public static String div(String value1,16); BigInteger divValue= BigIntegerDemo.div(b1.toString(10),b2.toString(10)); return divValue.toString(16); } /** * 取模 * */ public static String mod(String value1,16); BigInteger modValue= BigIntegerDemo.mod(b1.toString(10),b2.toString(10)); return modValue.toString(16); } /** * 求逆 * */ public static String inverse(String value1,16); BigInteger inverseValue= BigIntegerDemo.inverse(b1.toString(10),b2.toString(10)); return inverseValue.toString(16); } public static void main(String[] args) { //System.out.println("加法="+add("abababaababaabababaccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc","dfaaaaaabbbbbbbb13542353425634634635656")); //System.out.println("减法="+sub("abababaababaabababaccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc","dfaaaaaabbbbbbbb13542353425634634635656")); //System.out.println("成法="+mul("abababaababaabababaccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc","dfaaaaaabbbbbbbb13542353425634634635656")); //System.out.println("除法="+div("abababaababaabababaccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc","dfaaaaaabbbbbbbb13542353425634634635656")); //System.out.println("mod="+mod("abababaababaabababaccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc","dfaaaaaabbbbbbbb13542353425634634635656")); //System.out.println("求逆="+inverse("abababaababaabababaccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc","dfaaaaaabbbbbbbb13542353425634634635656")); BigInteger b1=new BigInteger("147429890135226316801"); BigInteger b2=new BigInteger("14736494398871999483"); BigInteger b3=b1.multiply(b2); BigInteger b4=new BigInteger("2"); System.out.println(b3.multiply(b4)); } }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读