递归进制转换_strrev

#define _CRT_SECURE_NO_WARNINGS

#include <stdlib.h>
#include <stdio.h>
#include <string.h>



void to2str(int num,int i,char *str2)
{
    if (num == 0)
    {
        return;
    }
    else
    {
        to2str(num / 2,i+1,str2);
        str2[i] = (num % 2) + '0';
    }
}

void to8str(int num,int i,char *str8)
{
    if (num == 0)
    {
        return;
    }
    else
    {
        to8str(num / 8, i+1, str8);
        str8[i] = (num % 8) + '0';
    }
}

void to16str(int num,int i,char *str16)
{
    if (num == 0)
    {
        return;
    }
    else
    {
        to16str(num / 16,i+1,str16);
        
        if (num % 16 < 10)
        {
            str16[i] = (num % 16) + '0';
        }
        else
        {
            str16[i] = (num % 16) - 10 + 'A';
        }
    }
}

void main()
{
    char str2[32] = { 0 };
    char str8[32] = { 0 };
    char str16[32] = { 0 };

    int num = 0;
    scanf("%d", &num);

    to2str(num, 0,str2);
    _strrev(str2);

    to8str(num, 0, str8);
    _strrev(str8);

    to16str(num, 0, str16);
    _strrev(str16);

    printf("\n%s", str2);
    printf("\n%s", str8);
    printf("\n%s", str16);
    system("pause");
}

 

posted @ 2015-12-31 20:38  喵小喵~  阅读(200)  评论(0编辑  收藏  举报