问题如下:为什么下面输出的是251?上面输出-5我能理解,但这个251是怎么来的,求大神解答,在线等~~截图和程序如下:
#include <stdio.h>
main()
{
signed char a;
unsigned char b;
int i,j;
i=-5;
a=i;
b=i;
printf("%d,%d\n",i,a);
printf("%d,%d\n",i,b);
getch();
}
为什么是用补码表示
追答补码(two's complement) 在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。