#include "stdio.h"
void f10to2(char n){
unsigned char f;
if(f=0x80,n<0){
printf("1");
f>>=1;
}
while(f){
printf("%d",!!(f&n));
f>>=1;
}
printf(" ");
}
int main(int argv,char *argc[]){
int n;
char m;
printf("Input n(int -128<=n<=127)...\nn=");
if(scanf("%d",&n)!=1 || n<-128 || n>127){
printf("Input error, exit...\n");
return 0;
}
printf(" DEC ORIG RADX COMP\n");
printf("----------------------------------\n");
m=(char)n;
printf(m>9 ? "%4d\t" : "%3d\t",m);
if(m>=0)
f10to2(m),f10to2(m),f10to2(m);
else
f10to2((~m+1)|0x80),f10to2((m-1)|0x80),f10to2(m);
printf("\n");
return 0;
}
运行样例: