私は学校プロジェクトのためにCでバイナリ電卓を作成していますが、正しい答えを得ることができません。小数点入力のバイナリ演算
私は、符号なし整数をユーザーから読み込み、印刷できないので、バイナリ入力を10進数に変換する変数を作成し、その10進数に演算子を適用します。
コード:
case 1:
printf_s("Input a binary number and decimal shifting in the following format: 8-bit dec\n");
scanf_s("%u %u", &b1, &b2);
/*conversion of binary to decimal*/
result1 = (b1 % 10) + (b1/10 % 10) * 2 + (b1/100 % 10) * 4 + (b1/1000 % 10) * 8 + (b1/10000 % 10) * 16 + (b1/100000 % 10) * 32 + (b1/1000000 % 10) * 64 + (b1/10000000 % 10) * 128;
printf_s("\nThe result is %u\n", result1 << b2);
break;
私が持っている問題は、私は例00111100
と3
のために入力したとき、プログラムは明らかに余分な1
をどうするかを知っていないと私は間違った答えを得ます。
ルーピングの概念を学び、ケースに適用する必要があります。 –
私はループを使用することはできません、asigmentはif/elseとスイッチ – user7792712
のループだけを許可し、すべてのループが結果に「何か」をする結果を作成します。 Ex。文字列の25は2 * 10 + 5、253は25 * 10 + 3です – Nish