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

C De 10 Jin Shuwo 2 Jin Shuni Bian Huansuru Fang Fa



コンピュータ システムでは、データや命令を表すために 2 進数がよく使用されますが、10 進数の方が 2 進数よりも理解しやすいため、変換が必要です。この記事では、10 進数から 2 進数への理解を深め、C と呼ばれるプログラミング言語で 10 進数を 2 進数に変換するさまざまな方法のプログラム例を示します。

Cで10進数を2進数に変換するには?

指定された 10 進数値が 2 で数回除算され、最終商として 0 になるまで余りが記録されます。このプロセスは、整数を 10 進数から 2 進数に変換するために使用されます。 10 進数から 2 進数への変換プロセスを示す式は、次の段階であると見なされます。







ステップ1: 数値を 2 で割って余りを求め、それを配列に追加します。



ステップ2: 次に余りを2で割ります。



ステップ 3: 結果が 0 を超えるまで、最初の 2 つの手順を繰り返します。





ステップ 4: 配列を逆方向に表示して、数値のバイナリ形式を取得します。 2 進数の最下位ビット (LSB) は先頭にあり、最上位ビット (MSB) は末尾にあります。これは、これを解釈する別の方法です。提供された 10 進数に相当する 2 進数は次のとおりです。

これをよりよく理解するために、11 を変換すると次のようになります。 10 10進数から2進数への変換:



2で割る 残り
11÷2 5 1 (LSB)
5 ÷ 2 2 1
2-2 1 0
1-2 0 1 (MSB)


ここで、余りを逆の順序で書きます。つまり、10 進数 (11) 10 ) になります (1011 2 )。

残りはメモされ、2 進数の (MSB) が最初に来て、次に残りが来るように書き込まれます。その結果、1011 2 指定された 10 進数値 11 に相当する 2 進数です。 10 。その結果、11 10 = 1011 2 。以下は、上記の 10 進数から 2 進数への変換を C 言語で実装したものです。

10 進数を 2 進数に変換するために使用されるメソッド

C 言語で使用される次のメソッドは、10 進数を 2 進数に変換します。

さて、上記の方法で10進数から2進数への変換を1つずつ実装していきます。

方法 1: for ループを使用した C プログラミングでの 10 進数から 2 進数への変換

以下は、C の for ループを使用した 10 進数 (11) の 2 進数への変換です。

#include
無効変換 ( 整数1 ) {
もしも ( 数値1 == 0 ) {
プリントフ ( 「0」 ) ;
戻る ;
}
int binary_num [ 32 ; // 仮定すると 32 ビット整数。
整数 = 0 ;
ために ( ;num1 > 0 ; ) {
binary_num [ i++ = 数値1 % 2 ;
番号1 / = 2 ;
}
ために ( int j = i- 1 ; j > = 0 ; j-- )
プリントフ ( 「%d」 、binary_num [ j ) ;
}
整数メイン ( ) {
int num1;
プリントフ ( 「10 進数を入力してください:」 ;
スキャンフ ( 「%d」 & 番号1 ) ;
変換 ( 番号1 ;
戻る 0 ;
}


上記のプログラムは、for ループを使用して、ユーザーが指定した 10 進数を 2 進数に変換しています。出力は次のとおりです。

方法 2: while ループを使用した C プログラミングでの 10 進数から 2 進数への変換

このメソッドでは、以下に示すように、C の while ループを使用して 10 進数 (11) を 2 進数に変換します。

#include
整数メイン ( ) {
int 10 進数、バイナリ数 = 0 、ベース = 1 、残り。
プリントフ ( 「10 進数を入力してください:」 ) ;
スキャンフ ( 「%d」 & 十進数_num ) ;
その間 ( 十進数_num > 0 ) {
剰余 = 10 進数 % 2 ;
binary_num = binary_num + 剰余 * ベース;
10 進数 = 10 進数 / 2 ;
ベース=ベース * 10 ;
}
プリントフ ( 「while ループで指定された 10 進数のバイナリは %d です」 、binary_num ;
戻る 0 ;
}


このプログラムでは、4 つの整数変数 decmal_num、binary_num、base、および剰余が最初に宣言されます。ユーザーが 10 進数を入力すると、それが 2 進数に変換されます。バイナリ変換は while ループを使用して実行されます。

方法 3: スタックを使用した C プログラミングでの 10 進数から 2 進数への変換

これは、10 進数値を 2 進数値に変更するスタックベースの C プログラムを使用した簡単な方法です。

#include

#define MAX_SIZE 32 // バイナリ表現の最大ビット数
整数メイン ( ) {
int 10 進数、バイナリ [ MAX_SIZE 、上 = -1 ;
プリントフ ( 「任意の 10 進数を入力してください:」 ) ;
スキャンフ ( 「%d」 & 十進数_num ) ;
その間 ( 十進数_num > 0 ) {
バイナリ [ ++トップへ = 10 進数 % 2 ;
十進数_num / = 2 ;
}
プリントフ ( 'スタック メソッドを使用した %d のバイナリは次のとおりです:' ) ;
その間 ( > = 0 ) {
プリントフ ( 「%d」 、バイナリ [ 上 - ) ;
}
戻る 0 ;
}


このプログラムでは、最初に 3 つの整数変数、top、binary、および decmal_num を宣言します。 top はスタック内の最上位要素のインデックス、 10 進数はユーザーが入力した 10 進数形式の数値、 binary はバイナリのビットを MAX_SIZE ビットとして含む配列、 decmal_num はバイナリ配列です。その後、while ループを使用してバイナリ変換が実行されます。

出力は次のとおりです。

方法 4: ビット演算子を使用した C プログラミングでの 10 進数から 2 進数への変換

ビット単位演算として知られる演算子は、整数を表すバイナリ シンボルの各ビットを操作します。以下は、ビット単位の演算を使用して 10 進数を 2 進数に変換する基本的な C スクリプトです。

#include

// このメソッドでは、すべてのものが表示されます。 4 数値のビット
無効な変換 ( 整数1 ) {
// 考えてみましょう 4 -ビット数
ために ( int i = 3 ;私 > = 0 ;私 - ) {
int ビット = ( 1 << ) ;
もしも ( 番号1 & 少し )
プリントフ ( 「1」 ) ;
それ以外
プリントフ ( 「0」 ) ;
}
}
整数メイン ( ) {
int num1;
プリントフ ( 「10 進数を入力してください:」 ) ;
スキャンフ ( 「%d」 & 番号1 ) ;
会話 ( 番号1 ) ;
戻る 0 ;
}


このプログラムは、最上位ビットから開始して最下位ビットで終了する数値の for ループを実行します。マスクと数値に対して「ビットごとの AND」演算を実行することで、ビットが 0 か 1 かを判断できます。非ゼロの場合、現在のビットは 1 です。それ以外の場合は 0 です。

num1 のバイナリ形式を表示するには、各反復後にビットを出力します。完全に実行された後の最終出力は次のようになります。

結論

数値を 10 進数から 2 進数に変換することは、コンピューター プログラミングにおいて不可欠なスキルです。 10 進数を 2 進数に変換すると、C プログラミングでさまざまな演算を実行できるようになります。この記事では、10 進数値を 2 進数値に変換する 4 つの方法を説明しました。