zoukankan      html  css  js  c++  java
  • 课堂动脑问题

    为什么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 常量枚举类型可以有自己的属性(参数)和方法枚举类型可以以独立的文件存在

  • 相关阅读:
    hdu--1253--胜利大逃亡(bfs)
    zzuli--2134: 维克兹的进制转换(规律)
    hdu--1316--How Many Fibs?(java大数)
    NYOJ--517--最小公倍数(大数打表)
    NYOJ--513--A+B Problem IV(大数)
    flask 重写wsgi_app实现自定义中间件
    flask的异常处理(errorhandler),template_global,以及过滤(template_filter)
    flask 的before_request以及after_request
    flask的闪现
    flask的session
  • 原文地址:https://www.cnblogs.com/zhaoziming/p/5937284.html
Copyright © 2011-2022 走看看