数値を基数 10 から基数 2 に変換する基本的なプログラムを実行しています。次のコードを取得しました。
#include <cstdlib>
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
int main()
{
    int num=0, coc=0, res=0, div=0;
    printf ("Write a base 10 number\n");
    scanf ("%d", &num);
    div=num%2;
    printf ("The base 2 value is:\n");
    if(div==1)
    {
        coc=num/2;
        res=num%2;
        while(coc>=1)
        {
            printf ("%d", res);
            res=coc%2;
            coc=coc/2;
        }
        if(coc<1)
        {
            printf ("1");
        }
    }
    else
    {
        printf ("1");
         coc=num/2;
        res=num%2;
        while(coc>=1)
        {
            printf ("%d", res);
            res=coc%2;
            coc=coc/2;
        }
    }
    printf ("\n");
    system ("PAUSE");
    return EXIT_SUCCESS;
}
特定の数値ではすべて問題ありませんが、数値 11 を基数 2 に変換しようとすると 1101 になり、56 を試行すると 100011 になります... これは論理的な問題であることはわかっており、基本的なアルゴリズムと関数に制限されています。 :(... 何か案は?