#include<stdio.h>
int main(){
//首先右边是个int类型的整数,写出它的源码,反码,补码。然后改为char类型,最后输出的%d是打印十进制的有符号数字,所以把缺的位置补上,再通过补码写出源码
//源码首位表示符号位,0为正数,1为负数,正数的源码,反码,补码都一样,负数的反码是源码符号位不变,剩余位按位取反,补码是在反码基础上加1
char a=-1;
//10000000 00000000 00000000 00000001 源码
//11111111 11111111 11111111 11111110 反码
//11111111 11111111 11111111 11111111 补码
//11111111 改为char类型的值,因为是有符号,1代表符号,缺的位补1
//11111111 11111111 11111111 11111111 补全后的补码
//最后输出的是源码,所以补码再次返回成源码,结果还是-1
signed char b=-1;
//有符号数结果同上一个,因为默认就是有符号的
unsigned char c=-1;
//11111111
//00000000 00000000 00000000 11111111
//因为无符号,所以缺的位补0,表示正数,所以结果是255
printf("a=%d\nb=%d\nc=%d\n",a,b,c);
return 0;
}
C语言基础 源码,反码,补码举例
最新推荐文章于 2024-04-25 07:42:53 发布