=0;i--){printf("%d",a[i]);}}"。"/> =0;i--){printf("%d",a[i]);}}"。">

ホームページ  >  記事  >  バックエンド開発  >  C言語で10進数を2進数に変換する方法

C言語で10進数を2進数に変換する方法

青灯夜游
青灯夜游オリジナル
2022-11-24 10:27:2647424ブラウズ

10 進数を 2 進数に変換する方法: 商が 0 になるまで 10 進数を 2 で割り続け、その余りを下から上に書き込みます。変換コード「int main(void){int n,len」 ;int a[20];scanf("%d",&n);while(n/2){a[len ]=n%2;n=n/2;}a[len ]=n%2;for (i=len-1;i>=0;i--){printf("%d",a[i]);}}"。

C言語で10進数を2進数に変換する方法

#このチュートリアルの動作環境: Windows7 システム、C99 バージョン、Dell G3 コンピューター。

C 言語の 10 進数から 2 進数への変換

C 言語では、10 進数を他の基数に変換するのはより複雑です。

10進整数は「Nで割って余りをとり、逆順に並べる」という方法でN進整数に変換されます。具体的な方法は次のとおりです:

  • N を除数として使用し、10 進整数を N で割って商と剰余を取得します。

  • 商を N で割り続けると、新しい商と余りが得られます。

  • 商を N で割り続けると、余りは保持されます。新しい商と剰余を取得します。

  • ....

  • このプロセスを繰り返し、毎回剰余を保持し、次で割ります。商が0になるまでN。

最初に求めた余りをN進数の下位桁とし、後から求めた余りをN進数の上位桁として並べます。 N 塩基数を取得するため。

そして

10 進数を 2 進数に変換したい場合は、「2 で割って余りを取り、逆順に並べる」という原則を使用する必要があります。

  • 商がゼロになるまで数値を 2 で割った数値を継続的に変換し、その剰余を下から上に書き込んで数値のバイナリ表現を取得します。

次の図は、10 進数 42 を 2 進数に変換するプロセスを示しています。

C言語で10進数を2進数に変換する方法

図から、 10 進数の 42 を 2 進数に変換した結果は 101010 となります。

実装コード:

#include <stdio.h>
int main(void)
{
	int n,length;	//length用来装二进制数的个数
	int a[20];		//定义一个数组来装余2得到的余数
	scanf("%d",&n);	//输入十进制的数字
	while(n/2){		//当n=1时,n/2=0,此时while(0)不执行while中的语句,直接执行下面的语句
		a[length++] = n%2;	//将除2得到的余数装入数组中
		n = n/2;			//除二
	}
	a[length++] = n%2;		//存储最后一个余数
	//将余数从下往上输出
	for(int i = length-1;i>=0;i--)
		printf("%d",a[i]);
}

C言語で10進数を2進数に変換する方法

関連する推奨事項: 「

C ビデオ チュートリアル

以上がC言語で10進数を2進数に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。