2009-01-22 12 views
4

У меня есть строка, состоящая из 1 ('\ u0031') и 0 ('\ u0030'), которая представляет значение BCD.Код Java или lib для декодирования двоично-кодированного десятичного кода (BCD) из строки

В частности, строка имеет значение 112 символов 1 и 0, и мне нужно извлечь либо 8, либо 16 из них за один раз и декодировать их с BCD до десятичного.

Идеи? Пакеты? Libs? Код? Все приветствуются.

+0

ум вам язык! – Alnitak

ответ

4

Извлечение 4 символов за раз и использование Integer.parseInt (строка, 2) должно указывать каждую цифру. Объедините цифры, как вы считаете нужным.

1

Я думаю, вы пропустили все самое интересное:

Вот базовая реализация того, что предложил Пит Kirkham.

Взял около 5 минут.

import java.util.List; 
import java.util.ArrayList; 

public class Binary { 

     public static void main(String [] args) { 

      for (int i : Binary.fromString("0000000100100011010001010110011110001001")) { 
       System.out.print(i);  
      } 
      System.out.println(); 
     } 

     public static List<Integer> fromString(String binaryString) { 

      List<Integer> list = new ArrayList<Integer>(); 
      StringBuilder buffer = new StringBuilder(); 
      int count   = 0; 


      for (char c : binaryString.toCharArray()) { 
       buffer.append(c); 
       count++; 

       if (count >= 4) { 
        list.add(Integer.parseInt(buffer.toString(), 2)); 
        count = 0; 
        buffer.delete(0 , 4); 
       } 
      } 

      return list; 
     } 
}