2016-04-13 4 views
0

私はコーディングとjavascriptが新しく、特定のJavascriptの組み込みメソッドを使わずにベース10の数値をバイナリベースに変換するように求められましたalert(a.toString(16)))、ループ、配列、関数の使用のみが許可されています。これは今まで私が持っていたものです:ベース10の数値を他のベース2に変換する(組み込みのJavaScript関数なし)

var number = prompt("Enter an unsigned base 10 number"); 
    if (number>=0) { 
     var base = prompt("Enter b for binary, o for octal, or h for hexadecimal"); 

     if (base=="h"||base=="H") { 
      ; 
     } 

私が見ることはあまりありません。私は10進数を変換するためにどのような方程式や公式を使用するのか、16進数でA = 10、B = 11、C = 12などを表示する方法について興味がありました。どんな助けでも大歓迎です!

+0

あなたがバイナリ(2ベース)または16進数(16ベース)に変換する必要がありますか? –

+0

3つのバイナリ、16進数、8進数のすべてに。ユーザーがどのベースに変換するかによって、その特定のベースに対してコードが実行されます。 – LA495

+0

あなたはアルゴリズムの後にいるようです(例えば、[ベース10から他のベース*への番号の変更](http://mathbits.com/MathBits/CompSci/Introduction/frombase10.htm))。あなたがそれを見つけたら、それをプログラムしようとするべきです。それがこのサイトのためのステップです。 – RobG

答えて

0

編集:これはオリオン座ゼータ星として が私を示し、それを行うにはかなり複雑な方法である(以下の説明を参照してください)。 それはより多くの、または徒歩で長い道のりです。

短い説明:我々は、小数点数10、 のバイナリを取得したい場合は

たちは2^nは、たとえば2^3 = 8のために、まだ10 よりも小さくなるように2^nを試してみて(それはOKです)。しかし、2^4 = 16(それは大きすぎる)。 だから我々は2^3を持っており、3

今、我々は違いを取得するまで、再び同じ計算を行う2である10-2^3の残りの部分を、取得する必要があり、かつ に持っていたインデックスにある配列にそのための1を保存しますゼロの

最後に、アレイを逆にする必要があるため、アレイを逆にする必要があります。

var a = prompt("Enter an unsigned base 10 number"); 
 
var arr = []; 
 
var i = 0; 
 

 
function decToBin(x) { 
 
    y = Math.pow(2, i); 
 
    if (y < x) { 
 
    arr[i] = 0; 
 
    i++; 
 
    decToBin(x); 
 
    } else if (y > x) { 
 
    i--; 
 
    newX = (x - Math.pow(2, i)); 
 
    arr[i] = 1; 
 
    i = 0; 
 
    decToBin(newX) 
 
    } else if (y == x) { 
 
    arr[i] = 1; 
 
    result = arr.reverse().join(); 
 
    } 
 
    return result; 
 
} 
 

 
var b = decToBin(a); // var b holds the result 
 

 
document.write(b);

+0

これは不必要に複雑に見えます - 私のバージョンは 'function decToBin(x){return(x?decToBin(Math.floor(x/2)): '')+(x%2)}'です。 – Alnitak

+0

)、数値が0〜2^31-1の範囲に制限されている場合、 'Math.floor(x/2)'を 'x >>> 1'に置き換えることができます – Alnitak

+0

@Alnitak Thx forあなたの大きな助言。あなたははるかに優れたコーダーです。私はまだたくさんのことを学んでいます。しかし、私はできる限り多くのことを手伝っています。実際に私はデザイナーです。 – John

関連する問題