...用十六进制写出它最大正数的补码和最小负数补码
发布网友
发布时间:2024-10-07 09:15
我来回答
共2个回答
热心网友
时间:2024-10-13 17:48
我值会用10进制啊,16禁止还不习惯啊。下面是我编的程序:
#include<stdio.h>
#include<math.h>
void main()
{
int b[16],c[16];int i,k,n=0;double a[16];
for(i=0;i<16;i++)
{
a[i]=pow(2,i);
c[i]=(int)a[i];
}
printf("请输入一个整数:");
scanf("%d",&k);
if(k>=c[15]||k<-c[15])printf("math error!请输入32767~-32768之内的数字!");
else
{
if(k>=0) {b[0]=0;n=1;}
else
b[0]=1;
k=abs(k);
for(i=0;i<15;i++)
{
if(k>=c[14-i])
{
b[i+1]=1;
k=k-c[14-i];
}
else
b[i+1]=0;
}
if(n==0)
{
for(i=0;i<15;i++)
{
if(b[i+1]==0) b[i+1]=1;
else b[i+1]=0;
}
b[15]=b[15]+1;
for(i=0;i<15;i++)
{
if(b[15-i]>1)
{
b[15-i]=0;
b[14-i]=b[14-i]+1;
}
b[0]=1;
}
}
for(i=0;i<16;i++)
printf("%d",b[i]);
}
printf("\n");
}
热心网友
时间:2024-10-13 17:50
int型:-32768到32767对应8000h到7FFFh