接下来的一章会提到位操作符,所以我们先介绍一下这三种二进制形式。
整数的二进制表示形式:
一共有三种:源码、反码、补码
1、正整数的原码,反码和补码都是相同的。
2、负整数的原码,补码和反码是要经过计算的。
首先,不管是正整数还是负整数都可以直接写出二进制原码(根据正负直接转化出来的二进制序列就是原码)
例如:
int a = 5; 二进制序列就是 1111
因为一个整型是四个字节=32bit位
00000000000000000000000000000001111
最前面的就是符号位(0 表示 正;1 表示负)
所以此时写出原码,反码和补码
原码 00000000000000000000000000001111
反码 00000000000000000000000000001111
补码 00000000000000000000000000001111
因为15是正整数所以,三码都是相同的
int b = -15;
10000000000000000000000000001111 源码
11111111111111111111111111110000 反码(原码符号位不变,其他位取反)
11111111111111111111111111110001 补码(反码+1)
整数在内存中存储的是补码
计算的时候也用补码