输入负数印出该负数的二进位

Leaf1029 2012-12-07 02:04:24
老师给出框架了,求高手解答,我们还没学到阵列,应该是用位元对比和循环做的


Complete the source file below to get the correct result.

运行:
input a integer (0~255) : 100
100's binary : 01100100
input a integer (int) (-2^31~2^31-1) : -100
-100's binary : 11111111111111111111111110011100


框架:
#include <stdio.h>
int c2b(unsigned char);
void printi(int);
int main ( void)
{
unsigned char a;
int x;
do
{
printf("input a integer (0~255) : ");
scanf("%u",&x);
}
while ((x > 255 || x < 0));
a = x;
printf("%d's binary : %08d",a,c2b(a) );
printf("\n");

printf("input a integer (int) (-2^31~2^31-1) : ");
scanf("%d",&x);
printi(x);
printf("\n");

return 0;
}

int c2b( unsigned char c )
{
// your code
}

void printi (int x)
{
// your code
}
...全文
124 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
mymtom 2012-12-07
  • 打赏
  • 举报
回复

#include <stdio.h>
int c2b(unsigned char);
void printi(int);
int main ( void)
{
    unsigned char a;
    int x;
    do
    {
        printf("input a integer (0~255) : ");
        scanf("%u",&x);
    }
    while ((x > 255 || x < 0));
    a = x;
    printf("%d's binary : %08d",a,c2b(a) );
    printf("\n");

    printf("input a integer (int) (-2^31~2^31-1) : ");
    scanf("%d",&x);
    printi(x);
printf("\n");

    return 0;
}

int c2b( unsigned char c )
{
    int i, b;

    b = 0;
    for (i = 0; i < 8; ++i)
        b = 10 * b + ((c >> (7 - i)) & 1U);
    return b;
}

void printi (int x)
{
    int i;
    printf("%d's binary :", x);
    for (i = 0; i < 32; ++i)
        if ((((unsigned int)x) >> (31 - i)) & 1U)
            printf("1");
        else
            printf("0");
}
代码转载自:https://pan.quark.cn/s/6708bc18cb4a 《Proteus 8.15 SP0:电子电路设计的强大平台》 Proteus 8.15 SP0是一款在电子工程领域享有高度声誉的电子电路设计软件,它在电子工程领域中占据着核心地位。这款专业级别的工具凭借其卓越的功能和用户友好的界面,为工程师们提供了从概念构思到最终实现的完整解决方案。 1. **软件介绍** Proteus 8.15 SP0是由Labcenter Electronics公司研发的一款集成仿真与PCB设计软件。其内部版本编号33980体现了该软件的最新迭代和优化。软件的核心优势在于其一体化的设计平台,能够支持电路设计、模拟仿真、PCB布局以及3D视图预览,显著提升了设计效率。 2. **电路设计与模拟** - **元件资源**:Proteus内置了种类繁多的元件库,涵盖了各类晶体管、电阻、电容、集成电路等,覆盖了数字电路、模拟电路、微控制器等多个技术领域,能够满足不同项目的需求。 - **即时模拟**:用户能够在设计阶段实时监控电路的工作状态,这在调试和验证电路设计时极具价值,减少了制作物理原型的必要性,从而降低了成本。 - **混合仿真模式**:Proteus支持模拟与数字信号的联合仿真,使得复杂的混合系统设计成为可能。 3. **PCB设计** - **布局与布线**:Proteus配备了直观的PCB布局工具,使用户能够轻松调整元件位置,选择自动或手动布线,确保电路的可靠性和可制造性。 - **规则验证**:内置的规则验证功能能够帮助工程师避免违反设计规范,例如间距、过孔尺寸等,保障了PCB设计的质量。 - **三维视图**:独特的三维视图功能使用户能够从多...

70,039

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧