8進数を10進数に、またはその逆に変換するC++プログラム
コンピュータシステムでは、8進数は8進数で表され、10進数は10進数で表されます。 8進数は基数8で、10進数は基数10です。
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);
-
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-
-
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で除算し、ビットを格納し続けます