C言語のアルゴリズムは二進数に進数に変換します

鉛:C言語では、他のツールや2進数、8進数出力を直接出力するための方法の進数は16進数%X、出力はバイナリは私たち自身を行っているように出力することができ、%Oであることができるではありません解決しました。ここでは、プログラムに進数10進数に変換する方法をご紹介します。

 

まず、あなたのソースコードを示しています。

#include <stdio.h>
void main()
{
    //进制转换函数的声明
    int transfer(int x);
    int x;
    printf("请输入一个十进制数:");
    scanf("%d",&x);
    printf("转换成二进制数是:%d\n",transfer(x));
}
int transfer(int x)
{
    int p=1,y=0,yushu;
    while(1)
    {
        yushu=x%2;
        x/=2;
        y+=yushu*p;
        p*=10;
        if(x<2)
        {
            y+=x*p;
            break;
        }
    }
    return y;
}

関数の本体で具現アルゴリズムは、無限ループしながら(1)ループのうちの結果を使用します。可変玉樹の残りは毎回内部ループが生成される変数は、各サイクルは、新しい値を与えられるX、この新しいビジネスの値は、各サイクルで生成されます。商業的に生産が少なく、その後ループのうち最終結果(2進数)を生成する2以上である場合。

たとえば、次の引数を7に関数の引数は、最初のサイクルを得るために27で除算された場合は、商業的に最初のサイクルによって生成される1の残りは、3れる生成;サイクル2で割っ3の商を生成します、残りは第二のサイクルで生成された1である、第二サイクル事業は、一つを生成しました。

残りはそれぞれ2未満を生成し、最後のビットの2進数は、サイクルの残りの部分は、合理的記憶のために生成されなければならないたびに、表示する必要があるされているため、Y変数ストレージは、特定のスキルです。ビットに生成された第1残り、第二10で生成残りは、第三の残りは百に生成......などサイクル得られた商になるまで2未満その事業、および未満2の最後に最高レベル。Pは、制御ビットの変数の効果である変数yの初期値が0に設定され、変数pの初期値が1に設定され、内部ループ変数pはそれぞれ、各内部ループ変数yプラス玉樹を聞かせ、乗10であります* pは、格納されているので、残りのビットを達成します。最後に、Pによって供給者は、最終的な2進数を与えるために以下の変数yに加え2以上です。

例えば:実施例7、または独立変数に、最初のサイクルの後のY 1の値、yのif文の前に11秒のサイクルで、Y 111はif文であり、値は111となる7進数。

 

注:変数pは、それ自体で乗算さは玉樹* p変数yを加えた後に配置する必要があります!順序を逆にすることはできません!

公開された72元の記事 ウォンの賞賛203 ・は 90000 +を見て

おすすめ

転載: blog.csdn.net/weixin_41676881/article/details/80745177