ホームページ >バックエンド開発 >C++ >以下を中国語に翻訳してください: 10 進数を 2 進数に変換する C プログラム

以下を中国語に翻訳してください: 10 進数を 2 進数に変換する C プログラム

王林
王林転載
2023-09-10 12:37:02849ブラウズ

以下を中国語に翻訳してください: 10 進数を 2 進数に変換する C プログラム

C プログラミング言語で 10 進数を 2 進数の 10 進数に変換する方法を理解するために、次の例を考えてみましょう。

例 1 - 25 をバイナリに変換します。

ステップ 1 - 25 / 2 余り: 1、商: 12

ステップ 2 - 12 / 2 余り: 0、商: 6

ステップ 3 - 6 / 2余り: 0、商: 3

ステップ 4 - 3 / 2 余り: 1、商: 1

ステップ 5 - 1 / 2 余り: 1、商: 0

したがって、同等の 2 進数は次のようになります: 11001

例 2 - 0.7 を 2 進数に変換します。

ステップ 1 - 0.7 * 2 = 1.4、整数部分 = 1

ステップ 2 - 0.4 * 2 = 0.8、整数部分 = 0

ステップ 3 - 0.8 * 2 = 1.6、整数部分 = 1

ステップ 4 - 0.6 * 2 = 1.2、整数部分 = 1

ステップ 5 - 0.2 * 2 = 0.4、整数部分 = 0

ステップ 6 - 0.4 * 2 = 0.8、整数部分 = 0

したがって、同等の 2 進数は次のようになります: 0.101100

ステップ 3 - 最後に、10 進数 25.7 の 2 進数値は次のようになります。

11001 + 0.101100 = 1101.101100

以下は、10進数を2進数に変換するCプログラムです:

リアルタイムデモ

#include<stdio.h>
int main(){
   long double fraDecimal,fraBinary,bFractional = 0.0,dFractional,fraFactor=0.1;
   long int dIntegral,bIntegral=0;
   long int intFactor=1,remainder,temp,i;
   printf("Enter any fractional decimal number: ");
   scanf("%Lf",&fraDecimal);
   dIntegral = fraDecimal;
   dFractional = fraDecimal - dIntegral;
   while(dIntegral!=0){
      remainder=dIntegral%2;
      bIntegral=bIntegral+remainder*intFactor;
      dIntegral=dIntegral/2;
      intFactor=intFactor*10;
   }
   for(i=1;i<=6;i++){
      dFractional = dFractional * 2;
      temp = dFractional;
      bFractional = bFractional + fraFactor* temp;
      if(temp ==1)
         dFractional = dFractional - temp;
      fraFactor=fraFactor/10;
   }
   fraBinary = bIntegral + bFractional;
   printf("Equivalent binary value: %lf",fraBinary);
   return 0;
}

出力

実行時 上記プログラムを実行すると以下の結果が得られます -

Enter any fractional decimal number: 5.7
Equivalent binary value: 101.101100

以上が以下を中国語に翻訳してください: 10 進数を 2 進数に変換する C プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。