问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求一个C语言程序使输入一个数能显示出计算出它的原码和补码并显示出来(在VC6.0上运行)

发布网友 发布时间:2023-05-18 09:11

我来回答

4个回答

热心网友 时间:2023-09-29 02:09

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<conio.h>
void convert(int num);
void oppose(int n);
int a[16];
void main(void)
{
int num,jdz;
char ans;
while(1)
{
printf("请输入任意一个十进制整数: ");
scanf("%d",&num);
printf("\n");
printf("其绝对值为: ");
jdz=abs(num);
printf("%d\n\n",jdz);
printf("其原码为: \n");
convert(jdz);
printf("\n\n");
if(num>=0)
{
printf("其补码为: \n");
convert(jdz);
printf("\n\n");
}
else
{
printf("其补码为: \n");
oppose(a[16]);
printf("\n\n");
}
printf("按回车键继续或按ESC键结束程序!!!\n");
ans=getch();
while(ans!=13 && ans!=27)
{
ans=getch();
}
if(ans==13) system("cls");
if(ans==27)
{
system("cls");
printf("谢谢使用!!!\n");
break;
}
}
}

void convert(int num) /*定义转化为原码的函数*/
{
int i;
a[0]=num%2;
for(i=1;i<=15;i++)
{
a[i]=(num/2)%2;
num/=2;
}
for(i=15;i>=0;i--)
printf("%2d",a[i]);
}

void oppose(int n) /*定义转化为补码的函数*/
{
int i;
for(i=0;i<=15;i++)
{
switch(a[i])
{
case 1:a[i]=0;break;
case 0:a[i]=1;break;
}
}
for(i=0;i<=15;i++)
{
a[i]++;
if(a[i]>1) a[i]=0;
else break;
}
for(i=15;i>=0;i--)
printf("%2d",a[i]);
}

热心网友 时间:2023-09-29 02:09

问题要求也不难,打那么多字,干嘛?

源代码如下即可。

截图包括:输入正数、负数的运行结果。

热心网友 时间:2023-09-29 02:10

#include<stdio.h>
//#include <stdlib.h>
//#include <math.h>
void BtyeToBit(bool *out,char in)
{
printf(" buma:");
for(int i=0;i<8;i++)
{
out[i]=(in<<(i%8))&128;
printf("%d\t",out[i]);
}

printf("\nyuanma:");
if(out[0]==1)
{
for(int n=1;n<8;n++)
out[n]=out[n]^1;

if(out[7]==1)
{
out[7]=0;
if(out[6]==1)
{
out[6]=0;
if(out[5]==1)
{
out[5]=0;
if(out[4]==1)
{
out[4]=0;
if(out[3]==1)
{
out[3]=0;
if(out[2]==1)
{
out[2]=0;
if(out[1]==1)
{
out[1]=0;
out[0]=0;
}
else
out[1]=1;
}
else
out[2]=1;
}
else
out[3]=1;
}
else
out[4]=1;
}
else
out[5]=1;
}
else
out[6]=1;
}
else
out[7]=1;
for(int m=0;m<8;m++)
printf("%d\t",out[m]);
}
else
{
for(int j=0;j<8;j++)
printf("%d\t",out[j]);

}

}
void main()
{
bool buma[8];
char yuanma;
scanf("%d",&yuanma);
BtyeToBit(buma,yuanma);

}

可以节省内存。。

热心网友 时间:2023-09-29 02:11

求正数的原码、补码
#include<stdio.h>
int main()
{
int n,t,i=0,a[100],j=0,k;
printf("请输入一个数:\n");
scanf("%d",&n);
t=n;
while(t!=0)
{
a[i]=t%2;
t=t/2;
i++;
}
j=i;
printf("该数的原码是:\n");
while(i>0)
{
printf("%d",a[i-1]);
i--;
}
printf("\n");
printf("该数的补码是:\n");//正数的补码跟原码相同
while(j>0)
{
printf("%d",a[j-1]);
j--;
}
printf("\n");
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怎么能快速杀死蟑螂 The Best Mistake I'Ve Ever Made的歌词 王若琳的 the best mistake i've ever made 歌词的中文翻译..._百度... 1978年三月十三日出生的幸运数字是多少?和幸运花或者植物是什么?_百度... 1979年4月9日女幸运数字是什么 qq远程控制怎么弄qq远程控制 qq远程控制在哪怎么弄? 拿了中药怎么煎怎么服 中医药怎么煎服 大腿根肉怎么瘦 ps卡的时候显示器就变暗 ps4画面突然变暗 工程预算的定额哪里有? 建筑工程劳动定额可以在网上查吗 吉林省工程预算定额在哪找 河南定额的设备价格在哪里 重庆市建筑工程消耗量定额在哪里查询 在EXCEL里如图1,D4单元格中输入如下公式的含义? 木秀于林,风必摧之,形高于人,众必非之 ,知道是什么意思么? 原始三角形高度什么意思 木秀于林,风必摧之,形高于人,众必非之 ,知道是什么意思么??? 机械电子技术大专毕业能评审建筑类的工程师职称吗? 工行手机自注注册与柜员注册有什么区别?如果是自注注册手机银行,有什么功能可用? 工商银行手机客户端自助注册和去柜台注册一样吗? 我想了解一下过去的32位CPU 高人进:win7可能将成为最后一个32为操作系统??? 32位CPU从诞生到淘汰历经了多少年? oppoA5手机通讯录怎么导入到新手机? 国际贸易法律语言产生的时代背景、文化背景、经济背景。。谢谢~! 小孩坐地铁怎么买票呢? 建设银行商户每月的流水五万块钱能贷款多少钱? 商家一个月收多少流水网商贷可以提额 直升转录高校什么意思 或者我想的都是主观问题,而不是客观问题,为什么? 怎样解决过分主观问题? 答案不唯一的「主观类」问题,怎样回答更满足? 加盟大时代商城赚钱吗 大时代袜子加盟价格是多少? 什么叫E表格? 110kV变压器接地电阻是多少 《兰亭序》为什么被称为“天下第一行书。” 为什么说《兰亭序》是“天下第一行书”? 动力电池异常断开情况有哪两种? 荣咸E15纯电动车动力电池切断是怎么回事? 吉利远程整车动力电池断开是怎么回事? 原则改变能说不坚守原则吗 原则不会改变,但我们对原则的理解可以改变是什么意思 有没有关于中央文件要求全国新农村村部文化广场面积的要求? 什么是极简设计 建设农村健身文化场所的背景及意义