- 题目链接:http://ica.openjudge.cn/dg2/2/
- 总时间限制: 1000ms 内存限制: 65536kB
- 描述
-
输入若干int型整数,输出每个整数的二进制补码。
- 输入
- 输入有若干行,除最后一行外,每行包含一个int型整数。最后一行仅包含一个不定的字母,标志着输入结束。我们保证输入的整数不超出int型变量的表示范围
- 输出
- 个输入的整数,输出一行,即该整数的补码表示。
- 样例输入
-
1 7 200 -45 h
- 样例输出
-
00000000000000000000000000000001 00000000000000000000000000000111 00000000000000000000000011001000 11111111111111111111111111010011
1 #include<stdio.h> 2 #include<stdlib.h> 3 4 //void fun(unsigned int num);//输出num的补码二进制表示形式 5 void fun2(unsigned int num,int count);//输出num的补码二进制表示形式,按32bit的格式输出 6 int count; 7 8 int main(int argc, char *argv[]) 9 { 10 char temp[100]; 11 int t; 12 unsigned int num; 13 14 while(scanf("%s",temp)!=EOF) 15 { 16 if(temp[0]>='A'&&temp[0]<='Z'||temp[0]>='a'&&temp[0]<='z') break; 17 t=atoi(temp); 18 num=t;//t和num的二进制序列是一样的,但是假如t是负数则t和num表示的值不同 19 /*printf("%d %u",t,num);*/ 20 21 count=1; 22 if(t==0) printf("00000000000000000000000000000000");//0的补码 23 else fun2(num,count); 24 printf("\n"); 25 } 26 return 0; 27 } 28 /*void fun(unsigned int num)//输出num的二进制表示形式 29 { 30 int tt=num%2; 31 if(num!=0) 32 { 33 fun(num/2); 34 printf("%d",tt); 35 } 36 }*/ 37 void fun2(unsigned int num,int count)//输出num的补码二进制表示形式,按32bit的格式输出 38 { 39 int tt=num%2; 40 if(count!=33) 41 { 42 fun2(num/2,count+1); 43 printf("%d",tt); 44 } 45 }