目录: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);
}