怎么确定第一位是符号位
怎么确定第一位是符号位 看你定义的数据类型是否有符号,例如int类型就带符号位,unsigned int 就不带符号位,你图片的二进制补码都是带符号位的,第一位就是符号位,正数和二进制原来值相同,负数符号位不变,数值按位取反加1 村里小黑 发表于 2021-11-9 10:07看你定义的数据类型是否有符号,例如int类型就带符号位,unsigned int 就不带符号位,你图片的二进制补码都 ...
补码就是带符号位,这样理解对吗 守幽 发表于 2021-11-9 10:08
补码就是带符号位,这样理解对吗
对,第一位就是 村里小黑 发表于 2021-11-9 10:12
对,第一位就是
好的,谢谢 本帖最后由 jackz007 于 2021-11-9 15:12 编辑
守幽 发表于 2021-11-9 10:08
补码就是带符号位,这样理解对吗
一个数的补码是这个数取反然后加 1
1 : 0000 0001
1 取反 : 1111 1110
1 的补码 : 1111 1111
-1 : 1111 1111
-1 取反 : 0000 0000
-1 的补码 : 0000 0001
所以,1 和 -1 互为补码
试试这个代码
#include <stdio.h>
int main(void)
{
int d ;
for(;;) {
scanf("%d" , & d) ;
if(d == 0) break ;
printf("【%d】的反码是:【%d】,补码是:【%d】\n" , d , ~ d , ~ d + 1) ;
}
}
页:
[1]