带符号数的表示: 原码、反码和补码;定点表示和浮点表示;

原码、反码和补码

约定: 最高为符号位 ‘0’表示正数’+’; ‘1’表示负数’-’;

原码

最高位为符号位,非符号位为该数字绝对值的二进制表示 “0"的两种表示形式: [+0]的原码为: 0 0000000 [-0]的原码为: 1 0000000

例如:

1
2
	 127的原码为	0 1111111
	-127的原码为	1 1111111

反码

分为正数的反码和负数的反码

正数: 反码与原码一样 负数: 最高位(符号位)不变,数值部分’按位取反’; “0"的两种表示形式: [+0]的反码为: 0 0000000 [-0]的反码为: 1 1111111

例如:

1
2
	 127的反码为	0 1111111
	-127的反码为	1 0000000

补码

同样分为正数和负数

正数: 补码与原码一样 负数: 最高位(符号位)不变,数值部分’按位取反’,再加'1’; “0"的表示形式: [+0]的补码=[-0]的补码= 0 0000000

例如:

1
2
	 127的补码为	0 1111111
	-127的补码为	1 0000001

或者负数的补码可以简单的理解为: 原码的符号位不变,数值部分:从右向左到第一个'1’(包括)止不变,左边数’取反’;

例如:

1
2
	原码为: 1 00110 10
	补码为: 1 11001 10

总结

1.正数的原码、反码、补码是一样的,不变; 2.负数的反码是符号位不变,数值部分按位取反;补码为反码加'1’; 3.表示范围: 原码:[+127~-127] 反码:[+127~-127] 补码:[+127~-128] (因为'1 0000000’不再表示为’-0')