同理,在使用反码表示时,也会出现同样的问题: (00000001) 反+ (11111110)反 = (11111111)反 = ( -0 )
而在补码中这没有这个问题:(00000001)补 + (11111111)补 = (00000000)补 = ( 0 )
所以在java中,数值是由补码表示的。
3、源程序代码:

运行结果:

由此可知,每个变量都有一个有效区域,即定义的那片区域,出了这个区域,变量将不再有效(全局变量除外)。
4、源程序代码:

运行结果:

第一句输出中“+”连接字面量,计算结果是将X和Y将两数据连接。
语句二输出中“+”是运算符,计算结果是对X和Y求和。
5、为什么double类型的数值进行运算得不到“数学上精确”的结果?
float 和double类型主要是为科学计算和工程计算而设计的,他们执行二进制浮点运算,这两种类型在计算机中的储存分为三部分:符号位、指数为、尾数部分。数据以二进制存储在计算机时,会出现无线循环系列,在数据转化中会出现错误。十进制不能准确的表示1/3,同样二进制不能精确的表示1/10。
动手实验:
1、源程序代码:

运行结果:

2.Addtion
源程序代码:

运行过程及结果:



3、BigDecimal
源程序代码:

运行结果:



