私は宿題のために、2つの8ビットの2進数を追加するプログラムを書いています。読み取った2進数の格納に配列を使用します。実際に「加算」を行う関数では、forループは実行されません。ステップスルーすると、ループの変数nの初期化が表示され、ループの最後に直接移動して終了します。これが私のコードです:
for ( int n = 7; n < 0 ; n-- )
{
if ( carry == 0 )
{
if ( bin1[n] == 0 )
{
if ( bin2[n] == 0 )
{
sum[n] = 0;
carry = 0;
}
else
{
sum[n] = 1;
carry = 0;
}
}
else
{
if ( bin2[n] == 0 )
{
sum[n] = 1;
carry = 0;
}
else
{
sum[n] = 0;
carry = 1;
}
}
}
else
{
if ( bin1[n] == 0 )
{
if ( bin2[n] == 0 )
{
sum[n] = 1;
carry = 0;
}
else
{
sum[n] = 0;
carry = 1;
}
}
else
{
if ( bin2[n] == 0 )
{
sum[n] = 0;
carry = 1;
}
else
{
sum[n] = 1;
carry = 1;
}
}
}
}
}
私はこれがこれを書くための最も効率的な方法ではないかもしれないことを知っているので、それらの答えを避けてください。