-74的原码是01001010
反码是10110101
补码是10110110
答案补充
给你一个求任意整数的补码的程序。(范围在-128到255,或想范围更广,可自行改代码)
#include
"stdafx.h"
#include
"stdio.h"
#include
"stdlib.h"
main()
{
int
n,i,j;
int
result[8];
char
again;
do
{
printf("Please
input
the
number\n");
scanf("%d",&n);getchar();
j=n;
for(i=7;i>=0;i--)
{
result[i]=j&=1;
j=n;
j>>=8-i;
}
printf("%2d
",n);
for(i=0;i<8;i++)
printf("%d",result[i]);
printf("\nAgain?");
again=getchar();getchar();
}while(again=='y'||again=='Y');
return
1;
}
答案补充
原码、反码和补码的关系:
正数的各种码不常用,没必要掌握(至少我现在还基本上不用)
以-74为例:
负数的原码:对应的正数的符号们改为1;
11001010
反码:对原码各位数字取反,符号位除外;10110101
补码:在反码的基础上加1 10110110
十进制数-74用8位二进制补码表示是10110110
是负数,所以第一位是1
74的7位原码是1001010
所以7位反码就是0110101
补码就是反码+1,也就是10110110