码迷,mamicode.com
首页 > 其他好文 > 详细

课堂动脑问题

时间:2016-10-08 07:42:06      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:

为什么double类型的数值进行运算得不到数学上精确的结果

简单来说就是我们给出的数值,在大多数情况下需要比64bit更多的位数才能准确表示出来(甚至是需要无穷多位),而double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果。

 

Java中的类型转换

结论是这图画错了
byte -> short -> int -> long does not lose information (不会损失信息)的 Widening Primitive Conversion,用实线画是可以讲得通;char -> int -> long 也是 does not lose information Widening Primitive Conversion,也可以用实线。但是 float -> double 只有在 strictfp 模式下才是 does not lose information ,一般人大概都不知道 strictfp ,更不用说使用 strictfp 了。
虚线和没画出的地方就更不对了。 byte -> short -> float 的转换也是 does not lose information,理应在 short float 之间有一条实线;同样的道理 char -> float 也应该有一条实线;int -> double 也是 does not lose information,应该用实线而不是虚线。int -> float long -> double 会造成  loss of precision (精度损失),用虚线是没错;但是 long 也可以转换到 float ,在 long float 之间也应该有一条虚线。

同名变量的屏蔽原则

Java中如果局部变量名与成员变量名相同,成员变量会被屏蔽,如果想获得成员变量,需要使用this操作符

反码,补码,原码

所谓原码就是符号位加上数字的二进制表示,int为例,第一位表示符号 (0正数 1负数)简单期间一个字节表示

一个数如果为正,则它的反码与原码相同;一个数如果为负,则符号位为1(符号位不变化,其余位数取反)换言之 该数的绝对值取反(绝对值取反各位都取反)

补码:一个数如果为正,则它的原码、反码、补码相同;一个数如果为负,去到反码然后加1(反码加1就是补码)为了简单起见,我们用1个字节来表示一个整数

枚举类型

枚举类型并不是原始数据类型枚举类型等效于定义static finally 常量枚举类型可以有自己的属性(参数)和方法枚举类型可以以独立的文件存在

课堂动脑问题

标签:

原文地址:http://www.cnblogs.com/zhaoziming/p/5937284.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!