进制转换.cpp
来自「大一时候 我们老师上课留的C语言思考题 我写的解答程序的源代码。。。」· C++ 代码 · 共 43 行
CPP
43 行
#include<stdio.h>
void printb(int,int);
void printo(int,int);
//void printh(int,int);
void main()
{
int x;
printf("输入一个十进制数:");
scanf("%d",&x);
printf("十进制数是:%d",x);
printf("\n他的二进制是:");
printb(x,sizeof(int)*4);
printf("\n");
printo(x,sizeof(int)*4);
// printh(x,sizeof(int)*2);
putchar('\n');
}
void printb(int x,int n)
{
if(n>0)
{
putchar('0'+((unsigned)(x&(1<<(n-1)))>>(n-1)));
printb(x,n-1);
}
}
void printo(int x,int n)
{
if(n>30)
{
putchar('0'+2*((unsigned)(x&(1<<(n-1)))>>(n-1))+((unsigned)(x&(1<<(n-2)))>>(n-2)));
printo(x,n-2);
}
else if(n>0)
{
putchar('0'+4*((unsigned)(x&(1<<(n-1)))>>(n-1))+2*((unsigned)(x&(1<<(n-2)))>>(n-2))+((unsigned)(x&(1<<(n-3)))>>(n-3)));
printo(x,n-3);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?