Rumah  >  Soal Jawab  >  teks badan

javascript - js nombor besar kepada binari

Saya mempunyai rentetan nombor perpuluhan yang sangat besar Bagaimana untuk menukarnya menjadi rentetan binari?

Oleh kerana nombornya sangat besar, tidak ada cara untuk menukarnya menjadi nombor dan memasukkannya ke dalam pembolehubah keString(2)

仅有的幸福仅有的幸福2709 hari yang lalu652

membalas semua(6)saya akan balas

  • 某草草

    某草草2017-05-19 10:16:41

    Mengikut prinsip menukar perpuluhan kepada perduaan, simulasi membahagi dengan 2 dan mengambil baki

    balas
    0
  • 巴扎黑

    巴扎黑2017-05-19 10:16:41

    Sepatutnya tidak terlalu sukar untuk menulis algoritma sendiri, dan biarkan ia di latar belakang untuk diproses

    balas
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-19 10:16:41

    private static String process(ArrayList<String> imp,String HexStr){
            String rem = "";
            Long remaind = (long) 0;
            ArrayList<String> newList = new ArrayList<String>();
            Iterator<String> 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<String> splitNum = new ArrayList<String>();
            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();
        }
        
        
        

    Hasil nombor super besar tidak disahkan
    0------>0--->0000
    135,9234------>14bd82--->0001010010111101109,90010111101109,90999,9099 9999 ------>2386f26fc0ffff--->0010001110000110111100100110111111 0000001111111111111111
    0,00-t 2386f26fc10 000--->00100011100001101111001001101111111000001000000000000000
    9,9999,9999, 9999,9999 ------>16345785d89ffff--->0001011000110100010101111000010111011000100111111110001101000101011110000101110110001001111111111111110000100111111111111111000100111111111111111000100111111111111111999,9999,9999 9,9999,9999,99. 01111100000001111 111111111111111111111111111111

    balas
    0
  • 怪我咯

    怪我咯2017-05-19 10:16:41

    Tulis apa sahaja yang anda mahukan

    function toBin(str)
    {
      var arr = [];
      var remainder,i,str2,num,char;
      while(str.length>0) {
        str2 = "";remainder=0;
        for(i=0;i<str.length;i++) { // str2 = str组成的十进制数 / 2
          num = str.charCodeAt(i)-0x30; // num to String
          num = remainder*10 + num;
          char = Math.floor(num/2).toString();
          // 忽略最高为的0 , 即最高为如果是 0 则不放入 str2
          if(!(char === "0" && str2 === "")) { str2 += char;}
          remainder = num%2;
        }
        str = str2;
        arr.push(remainder); // 保存余数
      }
      return arr.reverse().join('');
      
    }
    console.log(toBin("3")); // 11
    console.log(toBin("9")); // 1001
    console.log(toBin("10")); // 1010
    console.log(toBin("120")); // 1111000

    balas
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-19 10:16:41

    Saya nak tanya, super besar, berapa besarnya

    balas
    0
  • 为情所困

    为情所困2017-05-19 10:16:41

    Jika ia hanya untuk paparan, anda boleh mempertimbangkan untuk membiarkannya dipindahkan di latar belakang

    balas
    0
  • Batalbalas