输出二进制补码

题目链接: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   华山青竹  阅读(899)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示