C--进制转换

目录:D:\Cpp\Examples\学习C++的每一天\第一天9.27\进制转换

1、十进制数除以2,二进制就向右挪动一位。

2、每个16进制对应4个二进制位。

第一步:

从十进制转为 二进制,十六进制  

######本文是刚开始阶段,方法过于粗暴,代码复杂,没用分支语句,后面进行更改与整理。

并且十六进制现在不能输入字母,就是大于9的数


#include <stdio.h>

void DtB(int a);         //函数的声明,声明中要带上参数。
void DtB2(int b);
void Space(int c);
void DtH(int d);
void HtD(int e);


int main()
{
    int a,b,c,d,e;    

    printf("请输入一个0-15之间的数:");     //十进制转为二进制  打印成对应的4个二进制数字;
    scanf_s("%d", &a);
    DtB(a);

    printf("请输入一个0-255之间的数:");    //十进制转为二进制   打印成对应的8个二进制数字;
    scanf_s("%d", &b);
    DtB2(b);

    printf("请输入一个十进制数:");            //将输入的十进制数 依次用空格 隔开
    scanf_s("%d", &c);
    Space(c);


    printf("请输入一个很大的十进制数:");    //将输入的十进制数 转换成 四个 16进制的数
    scanf_s("%d", &d);
    DtH(d);


    printf("请输入一个十六进制数:");        //将输入的十六进制数 转换成 10进制
    scanf_s("%d", &e);
    HtD(e);

    return 0;
}

void DtB(int a)                          //十进制转为二进制  打印成对应的4个二进制数字;
{
    printf("%d", a / 2 / 2 / 2 % 2); //看二进制和十进制的转换关系可以得知,十进制除以2 ,二进制就向右移动一位,然后将这一位上的数除以2取余数,就得出他的二进制数
    printf("%d", a / 2 / 2 % 2);
    printf("%d", a / 2 % 2);
    printf("%d\n", a % 2);
}

void DtB2(int b)                    //十进制转为二进制   打印成对应的8个二进制数字;
{
    printf("%d", b / 2 / 2 / 2 / 2 / 2 / 2 / 2 % 2);
    printf("%d", b / 2 / 2 / 2 / 2 / 2 / 2 % 2);
    printf("%d", b / 2 / 2 / 2 / 2 / 2 % 2);
    printf("%d", b / 2 / 2 / 2 / 2 % 2);
    printf("%d", b / 2 / 2 / 2 % 2);
    printf("%d", b / 2 / 2 % 2);
    printf("%d", b / 2 % 2);
    printf("%d\n", b % 2);
}

void Space(int c)                     //将输入的十进制数 依次用空格 隔开
{
    printf("%d ", c / 10000000);
    printf("%d ", c % 10000000 / 1000000);
    printf("%d ", c % 10000000 % 1000000 / 100000);
    printf("%d ", c % 10000000 % 1000000 % 100000 / 10000);
    printf("%d ", c % 10000000 % 1000000 % 100000 % 10000 / 1000);
    printf("%d ", c % 10000000 % 1000000 % 100000 % 10000 % 1000 / 100);
    printf("%d ", c % 10000000 % 1000000 % 100000 % 10000 % 1000 % 100 / 10);
    printf("%d\n", c % 10000000 % 1000000 % 100000 % 10000 % 1000 % 100 % 10);
}

void DtH(int d)                            //将输入的十进制数 转换成 四个 16进制的数,但是现在能实现的就是纯数字
{
    printf("%d ", d / 16 / 16 / 16 % 16);
    printf("%d ", d / 16 / 16 % 16);
    printf("%d ", d / 16 % 16);
    printf("%d\n", d % 16);
    
}

void HtD(int e)                            //将输入的十六进制数 转换成 10进制      对于小于9的数字就行,但是从A到F就不对了
{
    int m;
    m = e / 1000 * 16 * 16 * 16 + e % 1000 / 100 * 16 * 16 + e % 1000 % 100 / 10 * 16 + e % 1000 % 100 % 10 * 1;
    printf("%d", m);
}
 

猜你喜欢

转载自blog.csdn.net/qq_36079638/article/details/82887116