/*有符号二进制数求反码和补码*/
#include<stdio.h>
int main()
{
int n,d,i,j;
printf("请输入有符号二进制数的位数:");
scanf("%d",&n);
int a[n],b[n],c[n];
printf("请输入该二进制数:");
for(int i=0;i<n;i++) //输入二进制数
{
scanf("%d",&d);
a[i]=d;
}
if(a[0]==0)
{
printf("该二进制数的原码=反码=补码:"); //正数的原码,反码和补码是一样的
for(int i=0;i<n;i++) //
{
printf("%d",a[i]);
}
}
else if(a[0]==1)
{
printf("该二进制数的原码:"); //打印负数的原码
for(i=0;i<n;i++) //
{
printf("%d",a[i]);
}printf("\n");
for(i=1;i<n;i++) //判断该数是否符号位为1,其它各位为0
{
if(a[i]!=0)
break;
}
if(i==n){ //如果是,只有原码和反码
printf("该数只有原码和补码,没有反码\n");
printf("该数的补码为:");
for(j=0;j<n;j+
求有符号数的原码、反码和补码【C语言】
最新推荐文章于 2023-08-24 16:49:29 发布