取模运算:
a%b= a - (int)a/b *b
++i和i++的区别
++i表示先自增后赋值
i++ 表示先赋值后运算
示例:
int i = 1;
int j = ++i;//j=2,i=2
int i = 1;
int j = i++;//i=2,j=1
逻辑运算符
&&与&的区别
&&短路与:如果第一个条件为false,则第二个条件不会判断,最终结果为false 效率高
&逻辑与,不管第一个条件是否为false 第二个条件都要判断
复合运算符
+= -= *= /=
会进行数据类型转换
示例:
byte i = 1;
byte j = i += 1;//不会报错
//
byte i = 1;
byte j = i+1会报错
三目运算符要注意类型转换
进制转换
其他进制转十进制
二进制转十进制 将每个位上的数提取出来,乘以2的(位数-1)次方
示例:0b11110 = 0 * 2^0 + 1 * 2^1 + 1 * 2^2 + 1 * 2^3 + 1 * 2 ^ 4
八进制转十进制 将每个位上的数提取出来,乘以8的(位数-1)次方
01234=4 * 8^0 +3 * 8 ^ 2 + 2 * 8 ^ 3 + 1 * 8 ^ 4
十六进制转十进制 将每个位上的数提取出来,乘以16的(位数-1)次方
示例 :0x23A = 10 * 16 ^ 0 + 3 * 16 ^ 2 + 2 * 16 ^ 3
十进制转其他进制
十进制转二进制
规则:将该数不断除以2,直到商为0为止,然后将每步的余数倒过来,就是对应的二进制。
十进制转八进进制
规则:将该数不断除以8,直到商为0为止,然后将每步的余数倒过来,就是对应的二进制。
十进制转十六进制
规则:将该数不断除以16,直到商为0为止,然后将每步的余数倒过来,就是对应的二进制。
二进制转八进制
规则:从低位开始,将二进制数每三位一组,转成对应的八进制数即可
二进制转十六进制
规则:从低位开始,将二进制数每四位一组,转成对应的八进制数即可
八进制转二进制
将八位数每一位,转成对应的一个3位二进制数即可
十六进制转二进制
将八位数每一位,转成对应的一个4位二进制数即可
原码、反码、补码
最高制位是符号位 0表示正数 1表示负数
正数的原码、反码、补码都一样(三码合一)
负数的反码=原码的符号位不变,其他位取反(0->1,1->0)
负数的补码=反码+1 负数的反码=补码-1
0的反码补码都是0
java中的数都是有符号的
计算机运算时,是以补码的方式参与运算的
当我们看运算结果时,要看他的原码