黑马程序员技术交流社区
标题:
关于小数位运算
[打印本页]
作者:
ffuujian
时间:
2015-4-6 23:24
标题:
关于小数位运算
小数是不能位运算吗?
我的思路是用<<n,表示2的n次幂
第一张图,貌似是提示左边是double,右边是int,
第二张图,把右边改成double,还是报错,
第三张图,把代码中值都换成int,同时放大100倍,成功。
题目是,我国最高山峰是珠穆朗玛峰,8848米。现在我有一张足够大的纸,它的厚度是0.01米。
请问,我折叠多少次,可以折成珠穆朗玛峰的高度。
作者:
ffuujian
时间:
2015-4-6 23:28
class Num
{
public static void main(String[] args)
{
double n=0;
double high=0.01;
while (high < 8848.00)
{
n++;
high=0.01<<n;
}
System.out.println("需要折叠"+n+"次");
}
}
复制代码
作者:
ffuujian
时间:
2015-4-6 23:29
class Num
{
public static void main(String[] args)
{
int n=0;
int high=1;
while (high < 884800)
{
n++;
high=1<<n;
}
System.out.println("需要折叠"+n+"次");
}
}
复制代码
作者:
sisel
时间:
2015-4-6 23:39
public class Shift {
public static void main(String[] args) {
//以cm计珠峰高度
final int everest=884800;
//纸厚
int paperThickness=1,
//折叠次数
count = 0;
while(true){
if(paperThickness>=everest){
break;
}
paperThickness= paperThickness<<1;
count+=1;
}
System.out.println("需要折叠"+count+"次才能达到珠峰高度");
}
}
复制代码
作者:
sisel
时间:
2015-4-6 23:41
浮点类型是不能位移运算的
作者:
快乐ABC
时间:
2015-4-6 23:56
看来我涉猎的不够啊,竟然从没想过这个问题
作者:
ffuujian
时间:
2015-4-6 23:58
sisel 发表于 2015-4-6 23:41
浮点类型是不能位移运算的
谢了 刚百度了下,java不支持浮点型,只能对整数型和字符型
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2