-3

誰かにこれを手伝ってもらい、親切に説明してもらいたいです。私が欲しいのは答えだけではなく、それを理解したいのです。調査を行いましたが、投稿した質問に類似または関連する回答が見つからないようです。私はプログラミングが得意ではありませんが、これがどのように行われるかを知り、もっと学びたいと思っています。

4

3 に答える 3

1

Javaでは、これを行う標準的な方法はInteger.toBinaryStringです。ただし、独自のメソッドを作成したい場合は、これを確認できます。

public static String toBinaryString(int n) {
    String s = "";  // you can also use a StringBuilder here
    do {
        s = (n % 2) + s;  // add to front: 0 if n is divisible by 2,
                          // 1 if n is not divisble by 2.
        n /= 2;  // divide n by 2 to obtain next digit of
                 // binary representation in next iteration
    } while (n != 0);
    return s;
}

これはJavaで書かれていますが、ほとんどすべての言語で同様のアプローチをとることができます。


これがInteger.toBinaryString要約されます(実際には、このメソッドは別のヘルパーメソッドを呼び出します):

public static String toBinaryString(int i) {  
    char[] buf = new char[32];
    int charPos = 32;
    do {
        buf[--charPos] = digits[i & 1];
        i >>>= 1;  // i.e. i /= 2
    } while (i != 0);

    return new String(buf, charPos, (32 - charPos));
}

ここで、digitsは次のように定義されます

final static char[] digits = { '0', '1', '2', '3', '4', '5', '6', '7',
        '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
        'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
        'w', 'x', 'y', 'z' };
于 2012-11-25T14:51:24.683 に答える
0

Java の場合は、API を調べて Integer を読んでください。あなたのためにこれを行うことができるメソッドがすでにあります。toBinaryString(int i)

http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#toBinaryString(int )

于 2012-11-25T14:46:41.307 に答える
0

C# の場合:

int startVal = 7;
int base = 2;
string binary = Convert.ToString(startVal, base); 

C ++でアルゴリズムが必要な場合:

int i, n, a[100], m=0;
while(n!=0)
{
a[m++] = n%2;
n /= 2;
}
for(i=m-1;i>=0; --i)
cout<<a[i];
于 2012-11-25T14:48:15.443 に答える