标签:存储 net style info 图片 color 符号位 方式 span
前提条件:用8位表示1个数。
下面列出的是1、2、3、-1、-2、-3的原码:
1:0000 0001
2:0000 0010
3:0000 0011
-1:1000 0001
-2:1000 0010
-3:1000 0011
对于正数,反码与原码相同;
对于负数,反码等于原码取反,但符号位不变。
下面列出的是1、2、3、-1、-2、-3的反码:
1:0000 0001
2:0000 0010
3:0000 0011
-1:1111 1110
-2:1111 1101
-3:1111 1100
对于正数,补码与原码相同;
对于负数,补码等于反码+1。
下面列出的是1、2、3、-1、-2、-3的反码:
1:0000 0001
2:0000 0010
3:0000 0011
-1:1111 1111
-2:1111 1110
-3:1111 1101
测试程序如下:
#include <stdio.h>
int main(void)
{
int a = 1;
int b = 2;
int c = 3;
int d = -1;
int e = -2;
int f = -3;
printf("a = 0x%x, %d\n",a,a);
printf("b = 0x%x, %d\n",b,b);
printf("c = 0x%x, %d\n",c,c);
printf("d = 0x%x, %d\n",d,d);
printf("e = 0x%x, %d\n",e,e);
printf("f = 0x%x, %d\n",f,f);
}
输出结果如下:
a = 0x1, 1
b = 0x2, 2
c = 0x3, 3
d = 0xffffffff, -1
e = 0xfffffffe, -2
f = 0xfffffffd, -3
Press any key to continue
根据输出结果可以知道,在计算机内,正负数都以补码的形式进行存储。
对于正数,原码与补码都一样,无所谓;
对于负数,若用原码进行计算,会出现错误。
例如(-1)+(-2)=(-3)
原码与补码的计算结果如下如图所示:
负数在计算机中怎样存储
https://blog.csdn.net/littesss/article/details/70495810
标签:存储 net style info 图片 color 符号位 方式 span
原文地址:https://www.cnblogs.com/QQ2962269558/p/12864479.html