浮点类型数据在计算机内部怎么表示的 还有 exe是用C写的?

doramii 2017-09-02 06:52:28

说jkd是用c和c++实现的,是不是说bin目录里面的exe都是c写的?src.zip里面的类的源码都是Java呀


==是比较字节组合,变量i和b一个是4字节一个是1字节,怎么i == b是true呢

f == d是false,可以理解他们的字节组合是不一样的,具体float和double是怎么表示小数的呢?
...全文
192 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
galiniur0u 2017-09-06
  • 打赏
  • 举报
回复
由于4对于byte,int来说都不涉及到越界问题,因此当比较时转为int后就相当于4==4,因此是true 而对于float,double由于其内存中的表示方式类似于科学计数法,当进行比较时,由于类型转换导致精度缺失,因此比较结果就是false。 exe程序是针对于Window程序打包成的可执行机器码,跟什么语言编写无关,最终都是机器识别码而已。
zycxnanwang 2017-09-04
  • 打赏
  • 举报
回复
浮点数是用 浮点数 不是定点数, 一般不能精确, 计算机组成课程讲了这部分知识
northwesternwind 2017-09-03
  • 打赏
  • 举报
回复
第二次输出b1怎么会是false?应该是b2吧?
引用
System.out.println(b1)
b1 = b==i 就是比较b和i的数字是否相等,结果当然是true; 另外,不知道你这段代码是什么意思?现实中浮点数比较一般不用==这样的比较运算, 因为很少有精确相等的。我记得老师在编程入门的时候,就教会我们浮点数比较是用两个 数的差值小于一定的给定误差就可以了。比如(fabs(f-d)<0.000001). 浮点数和double类型的数据,保存格式是有规定的,一般是遵循IEEE规定的。具体格式自己百度下。

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧