数据在计算机中有三种存储形式:原码、反码和补码。其中关于数据的运算都是通过补码进行的。原码是对二进制数据的一种表示方法,表示形式为最高位符号位,其余位为数值位。例如:
关于数据类型转换。
1.默认转换:byte,short,char→ int→ long→ float→ double。byte,short,char之间不转换,这三类参与运算时都先转换为int类型,然后在运算。
2.强制转换,这里说个强制转换数据溢出的例子。
byte b = (byte) 300;
System.out.println(b);
这段代码输出结果是44。下面解析是如何运算的:
300在计算机中的存储形式为:
强制转换结果截取最后一个字节:
这个时候实际上b的补码为00101100,可以推导出其反码为00101100,原码为00101100,所以其十进制数值位44.输出结果为44。