关于java数型转换的问题
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/10 11:35:35
关于java数型转换的问题
我看的书里有这样一段话
怎么都算出来的,或者原理是什么?我知道byte的取值范围是-2^7~(2^7-1)
我看的书里有这样一段话
怎么都算出来的,或者原理是什么?我知道byte的取值范围是-2^7~(2^7-1)
建议去学一下计算机里数字存储的方式,也就是补码.所有的数字都是通过补码去存储的,计算也是通过补码计算的
再问: 原码、补码、反码我都懂,就是不知道这个是怎么得出来的
再答: int类型的变量占4个字节 128也就是 00000000 00000000 00000000 10000000 强转成byte,就是保留最后8位,10000000,首位是符号位,不用说了吧。 下面的一样,-129是 11111111 11111111 11111111 01111111 强转剩下01111111 也就是127了 你上面说的符号位不变,是没错,不过32位的,符号位是在最前面,不是第一个字节
再问: 原码、补码、反码我都懂,就是不知道这个是怎么得出来的
再答: int类型的变量占4个字节 128也就是 00000000 00000000 00000000 10000000 强转成byte,就是保留最后8位,10000000,首位是符号位,不用说了吧。 下面的一样,-129是 11111111 11111111 11111111 01111111 强转剩下01111111 也就是127了 你上面说的符号位不变,是没错,不过32位的,符号位是在最前面,不是第一个字节