原码:最直观的表示
[+1] = [0000 0001]原
[-1] = [1000 0001]原
缺点:负数无法直接让计算机计算,结果不对
反码:(解决负数问题)
补码(解决0符号位问题)
有效的解决了-0的问题 [-0] = [1000 0000]原 = [1111 1111]反 = [0000 0000]补 = [+0]
那么原来的[1000 0000]在内存中表示什么呢,规定表示 -128 他没有原码和反码,因为他是-0弃用的表示
具体和硬件实现有关8bit能表示256个数 [-128] Mod 256 = 128 ,就是说从正向数128就是-128,
但是由于正数在内存(二进制表示)里规定是0开始的。所以正数最大值要-1
1.8位有符号整形的表示范围 -128~127
2.8位无符号整形的表示范围 0~255
原文:https://www.cnblogs.com/ming-fei/p/14587688.html