输出二进制补码

题目链接: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 }

 

posted on 2017-07-26 15:03  华山青竹  阅读(871)  评论(0编辑  收藏  举报

导航