语言背景Java其他也一样,计算机原理实现都是一样的,只不过其中举例子是Java。
前言:
1. 带符号位就是最前面的一位是符号位,正数是 0 表示,负数是 1 表示;
2.正数以原码保存,负数以补码保存;
3.有符号位的0应该如何表示,10000/00000 这时候0 用正数0 标示;
4.负数0用来标示负数最大值,这时候10....000只是含义上的补码,并没有原码表示;
正片:
正数就是原码表示所以最大值就是除符号位以外的都是1:011111...11;
int 中 2^32 正数的最大值:2^31 -1 = 2147483647;
负数在以补码保存(后面解释):
-1
原码:10000...0001; 反码:11111...1110; 补码:11111...1111;
-2147483647:
原码:11111...1111; 反码:10