84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
有一個超大超大的10進位數字字串,如何將其轉換成二進位字串?
由於數字特別大,沒辦法轉換成number放在變數裡toString(2)
依照十進制轉二進制的原理,自己模擬除2取餘
一種自己寫演算法 應該不會太難 另一種 交給後台處理
private static String process(ArrayList imp,String HexStr){ String rem = ""; Long remaind = (long) 0; ArrayList newList = new ArrayList(); Iterator itor = imp.iterator(); while(itor.hasNext()){ String ele = itor.next(); Long num = Long.parseLong(rem+ele); Long quot = num / 16; remaind = num%16; rem = remaind.toString(); if(quot > 0){ newList.add(padString(quot.toString(),16,"0",0)); } }; String hexRem = Long.toHexString(remaind); if(newList.isEmpty()){ return hexRem; } else{ return process(newList,hexRem)+hexRem; } } public static String D2Hex(String dNum){ String tmp = dNum; ArrayList splitNum = new ArrayList(); while(tmp.length() > 16){ String high = tmp.substring(0,tmp.length() - 16); splitNum.add(high); String low = tmp.substring(tmp.length() - 16); tmp = low; } splitNum.add(tmp); return process(splitNum,""); } public static String D2B(String dNum){ String hex = D2Hex(dNum); StringBuilder bin= new StringBuilder(); for(int i =0; i < hex.length(); i ++){ String tmp = Integer.toBinaryString( Integer.parseInt(hex.substring(i,i+1),16)); bin.append(padString(tmp,4,"0",0)); } return bin.toString(); }
超大數結果未驗證0------>0--->0000135,9234------>14bd82--->0001010010111101100000109999,9999,9999 -->2386f26fc0ffff--->001000111000011011110010011011111100000011111111111111111,0000,11111111111111. 11100001101111001001101111110000010000000000000009,9999,9999,9999,9999------>16345785d89ffff --->000101100011010001010111100001011101100010011111111111111111
隨便寫一張吧
function toBin(str) { var arr = []; var remainder,i,str2,num,char; while(str.length>0) { str2 = "";remainder=0; for(i=0;i
我想問,超大,有多大
如果只是顯示的話, 可以考慮讓後台轉
依照十進制轉二進制的原理,自己模擬除2取餘
一種自己寫演算法 應該不會太難 另一種 交給後台處理
超大數結果未驗證
9999,9999,9999,99999999,08949, cef80ffffffff--->01001110111000101101011011010100000101011011100001011010110011101111100000001111111111111111111111111111111111111111111111111111111111111111111111111111111111110------>0--->0000
135,9234------>14bd82--->000101001011110110000010
9999,9999,9999 -->2386f26fc0ffff--->00100011100001101111001001101111110000001111111111111111
1,0000,11111111111111
. 1110000110111100100110111111000001000000000000000
9,9999,9999,9999,9999------>16345785d89ffff --->000101100011010001010111100001011101100010011111111111111111
隨便寫一張吧
我想問,超大,有多大
如果只是顯示的話, 可以考慮讓後台轉