将任一整数转换为二进制形式
//二进制转换 #include <stdio.h> int main() { void printb(int,int); int x; printf("Input number:"); scanf("%d",&x); printf("number of decimal form:%d\n",x); printf("it's binary form:"); printb(x,sizeof(int)*8); //x:整数,sizeof(int):int型在内存中所占的字节数,sizeof(int)*8:int型对应的位数 putchar('\n'); return 0; } void printb(int x,int n) { if(n>0) { putchar('0'+((unsigned)(x&(1<<(n-1)))>>(n-1))); //输出第n位 printb(x,n-1); //归调用,输出x的后n-1位 } }
将任一整数转换为四进制形式
#include <stdio.h> int main() { void printq(int,int); int x; printf("Input number:"); scanf("%d",&x); printf("number of decimal form:%d\n",x); printf("it's binary form:"); printq(x,sizeof(int)*8); //x:整数,sizeof(int):int型在内存中所占的字节数,sizeof(int)*8:int型对应的位数 putchar('\n'); return 0; } void printq(int x,int n) //四进制转换 { for(;n>0;n=n-2) { putchar('0'+((unsigned)(x&(3<<(n-2)))>>(n-2))); //注意,这里不能写11,要写二进制为11的数,即十进制的3。 } }
将任一整数转换为八进制形式
#include <stdio.h> int main() { void printo(int,int); int x; printf("Input number:"); scanf("%d",&x); printf("number of decimal form:%d\n",x); printf("it's binary form:"); printo(x,sizeof(int)*8); //x:整数,sizeof(int):int型在内存中所占的字节数,sizeof(int)*8:int型对应的位数 putchar('\n'); return 0; } void printo(int x,int n) //八进制转换 { for(n=n+1;n>0;n=n-3) //初始值要修改,否则,移位到最后位置不能对齐 { putchar('0'+((unsigned)(x&(7<<(n-3)))>>(n-3))); } }