大數運算類似的文章有很多,本文主要分享一下自己的經驗。把實現思路寫一下,希望能夠幫助到有需要的人。
關於整數的運算通常有byte、short、int、long,當時數字有20位或者更長的時候,原有的資料型別已經不能使用,所以需要大數的運算,**實現如下:
/**
* 實現大數的運算 通過byte陣列運算,實現了進製的靈活調整
* * @author wangzhaoguo
* */public class bignumberutil
if (flag != 0)
return value;
} /**
* 陣列減法運算 a-b
* * @param a
* @param b
* @param hex
* @return
*/public static byte sub(byte a, byte b, short hex)
value[i] = shorttobyte(t, hex);
} if (flag != 0)
return value;
} /**
* 大小比較運算
* * @param value
* @param temp
* @return 如果 value>temp 返回 1,小於-1,等於0
*/public static short compareto(byte value, byte temp) else if (t < 0)
} return 0;
} private static short bytetoshort(byte data, short hex)
private static byte shorttobyte(short num, short hex)
public static void main(string args) ;
byte b = new byte ;
byte c = bignumberutil.add(a, b, (short) 10);
system.out.println(stringutil.bytes2hexstring(a));
system.out.println(stringutil.bytes2hexstring(b));
system.out.println(stringutil.bytes2hexstring(c));
c = bignumberutil.add(a, b, (short) 16);
system.out.println(stringutil.bytes2hexstring(a));
system.out.println(stringutil.bytes2hexstring(b));
system.out.println(stringutil.bytes2hexstring(c));
c = bignumberutil.sub(b, a, (short) 16);
system.out.println(stringutil.bytes2hexstring(a));
system.out.println(stringutil.bytes2hexstring(b));
system.out.println(stringutil.bytes2hexstring(c));
c = bignumberutil.sub(b, a, (short) 10);
system.out.println(stringutil.bytes2hexstring(a));
system.out.println(stringutil.bytes2hexstring(b));
system.out.println(stringutil.bytes2hexstring(c));
short r = bignumberutil.compareto(b, a);
system.out.println(stringutil.bytes2hexstring(a));
system.out.println(stringutil.bytes2hexstring(b));
system.out.println(r);
r = bignumberutil.compareto(a, b);
system.out.println(stringutil.bytes2hexstring(a));
system.out.println(stringutil.bytes2hexstring(b));
system.out.println(r);
r = bignumberutil.compareto(b, b);
system.out.println(stringutil.bytes2hexstring(a));
system.out.println(stringutil.bytes2hexstring(b));
system.out.println(r);
} }
大資料運算
1 大數的資料型別設計 可以用乙個string和乙個long long型別來表示乙個大數型別,long long型別表示沒有超出範圍,string表示超出範圍的大數。在初始化的時候我們可以將string和long long都進行初始化,在運算的時候再判斷是用long long運算還是用string進...
Java大資料學習
背景 近年來大資料bigdata 人工智慧ai 物聯網iot等行業發展迅猛,很多人都想要從事大資料技術開發工作,但是,請問要怎麼做,路線是什麼?從 開始學?學哪些?這是乙個大問題。對於我自己來說,最近也在學一些大資料開發相關的技術,所以之前整理了乙份 大資料技術學習路線 希望對你有所幫助。學習規劃 ...
Java資料基本運算
算術運算子有加減乘除,符號分別是 另外還有取模運算子 以及自增 和自減 運算子。注意事項 int相乘可能為long,需要其中乙個標識為long,後面加l或l,long a 2147483647 2l 整數相除不是四捨五入,而是捨去小數字。如果要得到小數結果,需要將其中標識double,double ...