本文共 865 字,大约阅读时间需要 2 分钟。
十六进制转换成二进制:把二进制四位一隔
八进制转换为二进制:把二进制三位一隔
例子:十六进制2e 二进制:0010,1110
例子:八进制2 4 二进制:010,0100
int关键词最大值:Integer.max_value
最小值:integer.min_value
补码的计算:符号位不变,剩下的每位求反,最后一位加一
例子:1 000 0001
1 111 1110
1 111 1111
数据类型的转换:小范围的可以自动转为大范围的
大范围的转换成小范围只能强行转换(会有精度损失整数抛弃掉高位,浮点数抛弃小数位)
char->int
byte->short->int->long->float->double
数学运算、科学运算:
1、jdk提供了一些专门用于大数字运算的工具
2、一些第三方机构也会提供数学运算工具
3、jdk的高版本提供了类似弱类型对语言的变量(var b;)js,进行数学计算的时候可以自动改变类型(现在的第八版并不支持)
a++/++a的区别:a++是先赋值再运算,++a先运算再赋值
&:都是1的时候结果是1(1 & 4 0000 & 0100 结果为0000再转换为十进制)
|:只要一个是1,结果就是1(4 | 5 0100 | 0101 结果就是0101)
^:不相同结果为1,相同结果为0(2 ^ 3 结果是1)
~:如果是0结果是1,如果是1结果是0(需要用补码的方式来算,但是可以直接加一然后取负数例如:~5=-6)
<<:左移,二进制左移0001<<后0010乘2(数据如果过大溢出的话就会占据符号位,这时候就会变成负数然后补码算出这是负极)
>>:右移,同理应该就是除以2
>>>:无符号右移,不保留符号位
a?b:c
如果a的值是true那么整个表达式的值就是b否则就是c
当&&符号前的式子为假的时候后面的式子计算机将不会执行直接为假,所以当false && (c=8)>6这种式子时,c就不会被赋值为8
转载地址:http://whlwi.baihongyu.com/