BCD 値を表す 1 ('\u0031') と 0 ('\u0030') で構成される文字列があります。
具体的には、文字列は 112 文字相当の 1 と 0 であり、一度に 8 個または 16 個のいずれかを抽出し、BCD から 10 進数にデコードする必要があります。
アイデア?パッケージ?図書館?コード?どなたでも大歓迎です。
一度に 4 文字を抽出し、Integer.parseInt(string, 2) を使用すると、各桁が得られます。必要に応じて数字を組み合わせます。
私はあなたがすべての楽しみを逃していると思います:
これは、Pete 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;
}
}