# include<stdlib.h># include<stdio.h># define N 2intmain(){int m, r;int binary[50];int decimal;while(scanf("%d",&decimal)!=EOF){int i =0; m = decimal;while(m/N!=0){
r = m % N;
m = m / N;
binary[i++]= r;}
binary[i++]= m;//当m为1时,上面的循环条件不满足,因此不要漏了这个数for(int j = i -1; j >=0;--j){printf("%d",binary[j]);}printf("\n");}}
二进制数转换为十进制数。输入二进制数,输出对应的十进制数,按组合键Ctrl+Z结束。
# include<stdio.h># include<stdlib.h># define N 2intmain(){int decimal =0;char b;int bw =1;int binary[50];int i =0;while(scanf("%c",&b)!=EOF){if(b =='\n'){continue;}else{
binary[i++]= b -'0';//参考ASCII码 }}for(int j = i -1; j >=0;--j){
decimal += binary[j]* bw;
bw *=2;}printf("%d",decimal);}
将十进制转换成十六进制数。输入十进制数,输出对应的十六进制数,按组合键Ctrl+Z结束。
# include<stdlib.h># include<stdio.h># define N 16intmain(){int m, r;int hexadecimal[50];int decimal;while(scanf("%d",&decimal)!=EOF){int i=0;
m = decimal;while(m/N !=0){
r = m % N;
hexadecimal[i++]= r;
m /= N;}
hexadecimal[i]= m;for(int j = i; j >=0;--j){if(hexadecimal[j]>=10){printf("%c",hexadecimal[j]+55);}else{printf("%d",hexadecimal[j]);}}}}
# include<stdlib.h># include<stdio.h>intmain(){int n, a, con, i;//n存储输入值,a用于存储n与1按位与的结果//con记录1的个数,i控制循环次数while(scanf("%d",&n)!=EOF){
i =32;
con =0;while(i--){
a = n &1;
n = n >>1;if(a)con++;}printf("%d\n",con);}}