原码:32位,首位1表示-,0表示正数其他按照二进制排列,正整数的原码反码补码一样
反码:首位不变,其他位取反,反码的存在是为了正确计算负数,因为原码不能用于计算负数
补码:反码+1,补码很好的解决了反码负数不能跨零计算的弊端,并且补码还可以记录一个特殊的值 -128,这个数据在 1 个字节下是没有原码和反码,存储数据时实际存储的是整型数据的补码。
原码,反码,补码的表示范围:
n+1位数字,绝对值最大的原码是 -(2^n - 1)和 2^n - 1
n+1位数字,绝对值最大的反码是 -(2^n - 1) 和 2^n - 1
n+1位数字,绝对值最大的补码是 -2^n
无符号二进制 十进制 加1后的二进制 加1后十进制
1 2^1 – 1 10 2^1
11 2^2 – 1 100 2^2
111 2^3 – 1 1000 2^3
1111 2^4 – 1 10000 2^4
111……111 n个1 2^n – 1 1000……000 n个0 2^n
大小端字节序指的是数据在电脑上存储的字节顺序
大端字节序是把数据的高字节内容存放到低地址,低字节内容存放在高地址处
小端字节序是把数据的高字节内容存放到高地址,低字节内容存放在低地址处