logo

C の 2 進数から 10 進数へ

このセクションでは、2 進数から 10 進数への変換について説明します。概念に進む前に、2 進数と 10 進数を理解する必要があります。ご存知のとおり、コンピューターは人間が書いたり実行したりする単語や数字を理解できません。代わりに、0 と 1 のみを理解します。たとえば、コンピュータに単語や数字を入力すると、さまざまなソフトウェアやコンパイラがこれらの数字や単語をバイナリ形式 (0 と 1 のビット) に変換します。コンピュータマシンがこれらを簡単に理解できるようにするためです。

Androidで狩猟鳩を入手する方法
C の 2 進数から 10 進数へ

2進数

2 進数は、コンピューターに保存されている情報またはデータを 0 と 1 のビットの組み合わせで表す数値です。 0 と 1 の 2 つのビットがあるため、基数 2 の記数法としても知られています。これらは 2 進数 (0 と 1) 1001、1010、1101、1111、1010101 などです。

10進数

10 進数は、0 から 9 までの 10 桁を含む数値です。その底は 10 です。10 桁 (0、1、2、3、4、5、6、7、8、9) を集めて表す、または作成するためです。これらの 10 桁を使用した整数。

2進数を10進数に変換するアルゴリズム

  1. 2 進数を入力として受け取ります。
  2. 数値を 10 で割った余りを変数 rem に格納します。
  3. 10 進数 = 10 進数 + rem * 基数;
    初期状態では、 10 進数は 0、基数は 1 で、rem 変数には数値の残りが格納されます。
  4. 元の数値の商を 10 で割ります。
  5. 底を2倍します。
  6. 2 進数の小数点を出力します。

whileループを使用して2進数を10進数に変換します

while ループを使用して 2 進数 (0 と 1) の組み合わせを 10 進数に変換する C プログラムを考えてみましょう。

プログラム.c

 #include #include void main() { // declaration of variables int num, binary_num, decimal_num = 0, base = 1, rem; printf (' Enter a binary number with the combination of 0s and 1s 
'); scanf (' %d', &num); // accept the binary number (0s and 1s) binary_num = num; // assign the binary number to the binary_num variable while ( num > 0) { rem = num % 10; /* divide the binary number by 10 and store the remainder in rem variable. */ decimal_num = decimal_num + rem * base; num = num / 10; // divide the number with quotient base = base * 2; } printf ( ' The binary number is %d 	', binary_num); // print the binary number printf (' 
 The decimal number is %d 	', decimal_num); // print the decimal getch(); } 

出力

 Enter a binary number with the combination of 0s and 1s 1101 The binary number is 1101 The decimal number is 13 

コードの説明: 上記のプログラムでわかるように、ユーザーに 2 進数 (0 と 1) を要求して、その数値を変数 num に格納します。各反復で、while ループは 2 進数の条件をチェックし、指定された数値が 0 未満であってはならないことを検証します。それ以外の場合は、ループから抜けます。

while ループの反復は次のとおりです。

1 回目の反復:

レム = 1101 % 10 => 1

10 進数 = 0 + 1 * 1 => 1 (10 進数値 = 0、rem = 1、および基底 = 1)

数値 = 1101 / 10 => 110

k 最近隣の人

底 = 1 * 2 => 2

2 回目の反復:

レム = 110 % 10 => 0

10 進数 = 1 + 0 * 2 => 1 (10 進数 = 1、rem = 0、および基数 = 2)

数値 = 110 / 10 => 11

底 = 2 * 2 => 4

3 回目の反復:

レム = 11 % 10 => 1

10 進数 = 1 + 1 * 4 => 5 (10 進数 = 1、rem = 1、および基数 = 4)

ラテックスフォント

数値 = 11 / 10 => 1

Javaオブジェクトの等価性

底 = 4 * 2 => 8

4 回目の反復:

レム = 1 % 10 => 1

10 進数 = 5 + 1 * 8 => 1 (10 進数値 = 5、レム = 1、およびベース = 8)

数値 = 1 / 10 => 0

底 = 8 * 2 => 16

forループを使用して2進数を10進数に変換します

C言語でforループを使って2進数(0と1)の組み合わせを10進数に変換するプログラムを考えてみましょう。

10進数.c

mylivecricket.in
 #include #include #include // use math.h header file void main() { // declaration of local variables i, bin_num, decimal_num = 0, rem; int i, bin_num, decimal_num = 0, rem; printf (' Enter the binary number with the combination of 0s and 1s 
'); scanf ('%d', &bin_num); // takes the binary number as the input printf( ' 
 The binary number is %d', bin_num); // print the binary number for (i = 0; bin_num != 0; ++i) { rem = bin_num % 10; bin_num = bin_num / 10; decimal_num = decimal_num + (rem) * ( pow (2, i)); } // print the decimal number printf ('
 Conversion from binary to decimal number is %d', decimal_num); getch(); } 

出力

 Enter the binary number with the combination of 0s and 1s 10010 The binary number is 10010 Conversion from binary to decimal number is 18 

関数を使用して2進数を10進数に変換します

ユーザー定義関数を使用して、2 進数 (0 と 1) の組み合わせを 10 進数に変換する C 言語のプログラムを考えてみましょう。

そう。

 #include #include int binaryTodecimal(int bin_num); int main() { // declare the local variable int bin_num, dec_num; printf (' Enter the binary number (0s and 1s) 
'); scanf ('%d', &bin_num); dec_num = binaryTodecimal (bin_num); // call the binaryTodecimal() function printf (' Conversion of the binary number to decimal number is %d', dec_num); } // use user defined function --- binaryTo decimal function int binaryTodecimal( int bin_num) { // declaration of variables int decimal_num = 0, temp = 0, rem; while (bin_num != 0) { rem = bin_num % 10; bin_num = bin_num / 10; decimal_num = decimal_num + rem * pow( 2, temp); temp++; } return decimal_num; } 

出力

 Enter the binary number (0s and 1s) 11001 Conversion of the binary number to decimal number is 25 

配列と関数を使用して2進数を10進数に変換します

C言語で関数と配列を使って2進数(0と1)の組み合わせを10進数に変換するプログラムを考えてみましょう。

Decimal2.c

 #include #include int binaryTodecimal (char num[]) { int i, deci_num, mul = 0; for ( deci_num = 0, i = str_length(num) - 1; i >= 0; --i, ++mul) { deci_num = deci_num + (num[i] - 48) * (1 << mul); } return deci_num; } int str_length( char str[]) { int i = 0; while (str[i] != '') i++; return i; } int main() { char num[] = '1101'; int deci_num; printf ('
 The binary number is %s', num); printf ('
 The decimal number of %s is %d', num, binaryTodecimal(num)); return 0; } 

出力

 The binary number is 1101 The decimal number of 1101 is 13