2016-11-08 8 views
-2

私は簡単にバイナリ文字列を壊すいくつかのコードを探しています。私はこの質問を正しく聞いているかどうかはわかりませんが、それぞれの "アクティブビット"の価値を得たいと思っています。たとえば、私は100000001のバイナリ文字列を持っている場合、配列内の256,1の値を返したいと思います。私はこれを理解しようとしているので、整数列とテキスト列を持つSQLのルックアップテーブルを使用できます。整数列は、新しいテーブルに書き込まれるテキスト値を決定するために使用されます。したがって、値1の「Text1」と256の「テキスト2」は両方とも新しいテーブルに書き込まれますが、値を取得するために送信された数値は257になります。
私は散歩していますが、値257を入力し、100000001のバイナリ文字列に変換します。今では、このバイナリ文字列を2つの値(1と256)に分割するコードを作成したいと思います。Javaバイナリ変換?

+5

残念ながら、これはコード作成サービスではありません。何か試しましたか? – 4castle

+0

読む:http://stackoverflow.com/tour についてのお願い: 特定のプログラミング問題を ソフトウェアアルゴリズムを 符号化技術 ソフトウェア開発ツール 約聞かないでください: 質問をあなたは答えを見つけるためにしようとしていません 製品またはサービスの推奨または比較 物、世論調査、意見、ディスカッションなどのリストへのリクエスト コンピュータプログラムの作成に直接関係しないものはありません –

+0

気にしないで、古いCコード。私は、Javaにはそのためのツールがあると考えました。整数をバイナリに変換するのはとても簡単です。バイナリ形式からビットを読み込む簡単な方法があると思いました。これは "コード作成サービス"ではないことを私に思い出させてくれてありがとう。これは文字通り私が取り組んできた過去2年間のプログラムの中で最も小さな部分です。 – user3508197

答えて

0

Integer.highestOneBitを使用する場合は、バイナリ文字列に変換する必要はありません。 1ビットをループして、Integer.highestOneBitを呼び出すたびにサイズInteger.bitCountの配列を入力します。その後、最上位ビットの値をxorにして番号から削除することができます。

public static int[] getOneBits(int num) { 
    int[] oneBits = new int[Integer.bitCount(num)]; 
    for (int i = 0; i < oneBits.length; i++) { 
     oneBits[i] = Integer.highestOneBit(num); 
     num ^= oneBits[i]; 
    } 
    return oneBits; 
} 

Ideone Demo

これは、すべての値は、すべての要素の合計が元の数であろう順に2の累乗である配列を生成します。たとえば、257[256, 1]を生成し、127[64, 32, 16, 8, 4, 2, 1]を生成します。

+0

ありがとう!これは私がやろうとしていたものです。私は私の質問を発声するのが悪いです。 – user3508197

関連する問題