2017-10-24 11 views
0

私たちは学校でC++を学んでおり、先生はバイナリを10進数に変換するプログラムを作成するように指示しました。学校でのバイナリから小数への練習

これは私がメインで書いたものです:

int i = 0, e = 0,n = 00001111 , c; 
while (n > 0) 
{ 
    cout << "n= " << n << endl << "e= " << e << endl; 

    c = n % 2; 
    n = n/10; 
    if (c == 1) 
    { 
     e = e + (int)pow(c * 2, i); 
    } 
    i++; 
} 
cout << e << endl; 

system("pause"); 

出力が あるhere

はn = 585、iは00001111を書いたとき、なぜ私の質問はありますか?

タグが誤解を招く場合は、申し訳ありません。私はこれで新しいです。

+0

既にnの値は585ですが、2番目の値は宣言するときに値を与えます。また、私はデバッガに熟練していません。 –

+0

00001111は小数点ではなく8進数です。 – willll

+0

コンパイラは00001111を8進数として読み込みますか?それは8ビットの2進数であるが、10進数で書かれているので、10で除算することができます。コンパイラに値を小数点として読み込ませる方法はありますか? –

答えて

関連する問題