大数的计算
最近由于系统的要求,需要做一个辅助的功能大数的十进制、十六进制的计算,在网上找到很多资料都不是很全面,所以我在此记录一下大数的计算器的后台的代码。 /** /** ?* 十六进制的加、减、乘、除、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)); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |