进制转换.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 + -
显示快捷键?