基本数据类型问题
请问 static double f = 0x11e30;
System.out.println("double "+f);
为什么会打印出double 73264.0
------解决方案--------------------因为你System.out.println("double "+f); 是要打印出10进制的,而static double f = 0x11e30;
是16进制的需要转换成10进制
------解决方案--------------------0x11e30 的10进制就是73264.
static double f=0x11e30;
相当于:
static double f =73264;
------解决方案--------------------11e30不就是73264么
------解决方案--------------------
------解决方案--------------------因为:static double f = 0x11e30; 这里f所赋予的值是:16进制的,
但是在Java打印一个数的时候,基本上都是按照10进制的进行打印,因此:你所以打印出来的数据是73264.0。
所以你不用担心咯!如果有兴趣的话,推荐你研究一下!找本JVM书来看!就会慢慢明白的!
------解决方案--------------------感觉以上都没回答楼主的问题
楼主应该是想要0x11e30转换为10进制算法
也就是73264.0是怎么根据0x11e30算来的
如果不是当我什么都没说
每天回帖可得十分可用分 路过
------解决方案--------------------
0x11e30中0x代表16进制数后边11e30就是16进制数的具体值
所以0x11e30 = 1 * 16^4 + 1* 16^3 + 14 * 16^2 + 3*16^1 + 0 * 16^0 = 73264
在16进制中 0-9就表示0-9, a 表示10, b表是11, c表示12, d表示13, e表示14, f表示15
这里的e不是表示10的几次方的意思
------解决方案--------------------