带符号数的表示
Contents
带符号数的表示: 原码、反码和补码;定点表示和浮点表示;
原码、反码和补码
约定: 最高为符号位 ‘0’表示正数’+’; ‘1’表示负数’-’;
原码
最高位为符号位,非符号位为该数字绝对值的二进制表示 “0"的两种表示形式: [+0]的原码为: 0 0000000 [-0]的原码为: 1 0000000
例如:
|
|
反码
分为正数的反码和负数的反码
正数: 反码与原码一样 负数: 最高位(符号位)不变,数值部分’按位取反’; “0"的两种表示形式: [+0]的反码为: 0 0000000 [-0]的反码为: 1 1111111
例如:
|
|
补码
同样分为正数和负数
正数: 补码与原码一样 负数: 最高位(符号位)不变,数值部分’按位取反’,再加'1’; “0"的表示形式: [+0]的补码=[-0]的补码= 0 0000000
例如:
|
|
或者负数的补码可以简单的理解为: 原码的符号位不变,数值部分:从右向左到第一个'1’(包括)止不变,左边数’取反’;
例如:
|
|
总结
1.正数的原码、反码、补码是一样的,不变; 2.负数的反码是符号位不变,数值部分按位取反;补码为反码加'1’; 3.表示范围: 原码:[+127~-127] 反码:[+127~-127] 补码:[+127~-128] (因为'1 0000000’不再表示为’-0')
Author Ankang
LastMod 2020-03-06