摘自how2j
类型长度短的变成长的不需要强制转换,反之如果超过短的精度,是有风险的,需要强制转换。
Byte到char是需要写代码的。Char到int也是要写代码的。
Char到byte。
要用到右移,左移,位与,位或
Char 右移和oXFF00位与,得到9-16位的值放入byte[0],然后再和oXFF位与,得到右边8位的值,放到byte[1]中,这就是用两个byte表示char。
相当于用一个2个元素的Byte数组存储char的前8位和后8位。
Byte到char。
把byte左移8位,然后和oXFF相与就是16位的char。就转换成功了。
Char转int。减一个‘0’
Int转char。加一个‘0’
Long有64位为什么能自动转化为32位的float?
Long能自动转化为float是因为long是用二进制存储的,而float使用科学计数法存储的,float的范围远大于long,所以可以自动转化。