C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

2進数を10進数に、またはその逆に変換するC++プログラム


コンピュータシステムでは、2進数は2進数で表され、10進数は10進数で表されます。 2進数は基数2で、10進数は基数10です。

10進数とそれに対応する2進数の例は次のとおりです-

10進数 2進数
10 01010
7 00111
25 11001
16 10000
2進数を10進数に、10進数を2進数に変換するプログラムは次のとおりです。

#include <iostream>
using namespace std;
void DecimalToBinary(int n) {
   int binaryNumber[100], num=n;
   int i = 0;
   while (n > 0) {
      binaryNumber[i] = n % 2;
      n = n / 2;
      i++;
   }
   cout<<"Binary form of "<<num<<" is ";
   for (int j = i - 1; j >= 0; j--)
      cout << binaryNumber[j];
   cout<<endl;
}
int BinaryToDecimal(int n) {
   int decimalNumber = 0;
   int base = 1;
   int temp = n;
   while (temp) {
      int lastDigit = temp % 10;
      temp = temp/10;
      decimalNumber += lastDigit*base;
      base = base*2;
   }
   cout<<"Decimal form of "<<n<<" is "<<decimalNumber<<endl;;
}
int main() {
   DecimalToBinary(23);
   BinaryToDecimal(10101);
   return 0;
}

出力

Binary form of 23 is 10111
Decimal form of 10101 is 21

上記のプログラムには、DecimalToBinaryとBinaryToDecimalの2つの関数があります。これらは、数値をそれぞれ10進数から2進数に、2進数から10進数に変換します。

DecimalToBinary関数では、10進数nのバイナリ値が配列binaryNumber[]に格納されます。 whileループが使用され、nモジュラス2演算の結果は、ループの反復ごとにbinaryNumber[]に格納されます。これは、次のコードスニペットを使用して示されています。

while (n > 0) {
   binaryNumber[i] = n % 2;
   n = n / 2;
   i++;
}

この後、forループを使用して2進数が表示されます。これは次のように表示されます。

cout<<"Binary form of "<<num<<" is ";
for (int j = i - 1; j >= 0; j--)
cout << binaryNumber[j];

関数BinaryToDecimal()では、whileループを使用して2進数を10進数に変換します。 LastDigitには、一時変数の最後のビットが含まれています。ベースには、2、4、6、8などのベース値が含まれます。DecimalNumberには、前のDecimalNumber値の合計と、LastDigitとベースの積が含まれます。

これはすべて、次のコードスニペットを使用して示されています-

while (temp) {
   int lastDigit = temp % 10;
   temp = temp/10;
   decimalNumber += lastDigit*base;
   base = base*2;
}

main()関数では、DecimalToBinary()関数とBinaryToDecimal()関数が呼び出されます。これは次のように表示されます。

DecimalToBinary(23);
BinaryToDecimal(10101);

  1. Pythonプログラムで10進数を2進数に変換する

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 − 10進数が与えられているので、それに相当する2進数に変換する必要があります。 与えられた問題を解決するための2つのアプローチがあります。それらを1つずつ見てみましょう- 再帰的アプローチ 例 def DecimalToBinary(num):    if num > 1:       DecimalToBinary(num // 2)    print(num % 2, end = '') # main if _

  2. 10進数を2進数に変換するPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 数値を指定すると、2進数に変換する必要があります。 アプローチ1-再帰的ソリューション DecToBin(num):    if num > 1:       DecToBin(num // 2)       print num % 2 例 def DecimalToBinary(num):    if num > 1:       Decimal