对于 && 和 & 区别
- && 对于短路与而言如果第一个条件为false,后面的条件不会在进行判断
- & 对于逻辑与而言如果第一个条件为fasle, 后面的条件还会进行判断
对于 || 和 | 区别
- || 对于短路或而言如果第一个条件为ture,后面的条件不会进行判断
- | 对于逻辑或而言如果第一个条件为true, 后面的条件还会进行判断
二进制转十进制 由0和1两个数字组成
- 将每个个位数提取,个位乘以2的(位数-1)次方然后求和
- 例:0101 = 1 * 2^0
八进制转十进制 0开头
- 将每个个位数提取,个位乘以8的(位数-1)次方然后求和
- 例:0234 = 4 * 8^0
十六进制转十进制 0x开头
- 将每个个位数提取,个位乘以16的(位数-1)次方然后求和
- 例:0x2A = 10*16^0
十进制转二、八、十六
- 将数不断除以2,直到商为0为止,将每步得到的余数倒过来,就是二进制
- 将数不断除以8,直到商为0为止,将每步得到的余数倒过来,就是八进制
- 将数不断除以16,直到商为0为止,将每步得到的余数倒过来,就是十六进制
位运算符
- 按位与&:两位全为1,结果为1,否则为0
- 按位或 |:两位有一个为1,结果为1,否则为0
- 按位异或 ^:两位一个为0,一个为1,结果为1,否则为0
- 按位取反 ~:0变1,1变0
原码、反码、补码
- 二进制的最高位是符号位:0表示正数,1表示负数
- 正数的原码,反码,补码都一样(三码合一)
- 负数的反码 = 它的原码符号位不变,其它位取反(0 -> 1, 1 -> 0)
- 负数的补码 = 它的反码 + 1,负数的反码 = 负数的补码 - 1
- 0的反码,补码都是0
- java没有无符号数,换言之,java中的数都是有符号的
- 在计算机运算的时候,都是以补码的方式来运算的
- 当我们看运算结果的时候,要看它的原码