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

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


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

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

10進数 8進数
10 12
70 106
25 31
16 20

8進数を10進数に変換し、10進数を8進数に変換するプログラムは次のとおりです-

#include <iostream>
#include <cmath>
using namespace std;
void DecimalToOctal(int decimalNum) {
   int octalNum = 0, placeValue = 1;
   int dNo = decimalNum;
   while (decimalNum != 0) {
      octalNum += (decimalNum % 8) * placeValue;
      decimalNum /= 8;
      placeValue *= 10;
   }
cout<<"Octal form of decimal number "<<dNo<<" is "<<octalNum<<endl;
}
void OctalToDecimal(int octalNum) {
   int decimalNum = 0, power = 0;
   int oNo = octalNum;
   while(octalNum != 0) {
      decimalNum += (octalNum%10) * pow(8,power);
      ++power;
      octalNum/=10;
   }
   cout<<"Decimal form of octal number "<<oNo<<" is "<<decimalNum<<endl;
}
int main() {
   DecimalToOctal(20);
   OctalToDecimal(32);
   return 0;
}

出力

Octal form of decimal number 20 is 24
Decimal form of octal number 32 is 26

上記のプログラムでは、関数DecimalToOctalは10進数を8進数に変換し、関数OctalToDecimalは8進数を10進数に変換します。

関数DecimalToOctalでは、最初に変数octalNumがゼロに初期化されます。変数placeValueは、数値の桁の位置を示します。 OctalNumの値は、whileループを使用して検出されます。

whileループの反復ごとに、decimalNumは8で除算され、余りはplaceValueで乗算されます。これは、octalNumの以前の値に追加されます。また、decimalNumは8で除算され、商が保存されます。 placeValueに10を掛けます。

これを示すコードスニペットは次のとおりです。

while (decimalNum != 0) {
   octalNum += (decimalNum % 8) * placeValue;
   decimalNum /= 8;
   placeValue *= 10;
}

8進数の値、つまり8進数が取得された後、それが表示されます。これを以下に示します-

cout<<"Octal form of decimal number "<<dNo<<" is "<<octalNum<<endl;

関数OctalToDecimalでは、whileループの各反復でoctalNumが8で除算され、余りに8が掛けられて累乗されます。これは、decimalNumの以前の値に追加されます。電力は1ずつ増加し、octalNumは10で除算されます。これは次のように示されます。

while(octalNum != 0) {
   decimalNum += (octalNum%10) * pow(8,power);
   ++power;
   octalNum/=10;
}

decimalNumの値が見つかると、それが表示されます。これは次のように見えます。

cout<<"Decimal form of octal number "<<oNo<<" is "<<decimalNum<<endl;

main()関数には、必要な値を使用したDecimalToOctal()およびOctalToDecimal()への関数呼び出しのみが含まれています。これは、次のコードスニペットによって示されます。

DecimalToOctal(20);
OctalToDecimal(32);

  1. C++での10進数から16進数への変換プログラム

    10進数を入力として指定すると、タスクは指定された10進数を16進数に変換することです。 コンピューターの16進数は16を底とし、10進数は10を底とし、0〜9の値で表されますが、16進数は0〜15から始まる数字で、10はA、11はB、12はC、 Dとして13、Eとして14、Fとして15。 10進数を16進数に変換するには、指定された手順に従います- まず、指定された数値を変換数値の基本値で除算します。例: 6789を16を底とする16進数に変換し、商を取得して格納する必要があるため、6789を16で除算します。余りが0〜9の場合はそのまま保存し、余りが10〜15の場合は、文字形式でA-

  2. C++での10進数から2進数への変換プログラム

    10進数を入力として指定すると、タスクは指定された10進数を2進数に変換することです。 コンピューターの10進数は10進数で表され、2進数は2進数の0と1の2つしかないため、2進数で表されますが、10進数は0〜9から始まる任意の数値にすることができます。 10進数を2進数に変換するには、次の手順に従います- まず、指定された数値を変換数値の基本値で除算します。例: 42を2を底とする2進数に変換し、商を取得して格納する必要があるため、42を2で除算します。余りが0の場合、ビットを0として格納します。それ以外の場合は1です。 取得した商を2進数の基数である2で除算し、ビットを格納し続けます