黑马程序员技术交流社区

标题: 关于小数位运算 [打印本页]

作者: ffuujian    时间: 2015-4-6 23:24
标题: 关于小数位运算
小数是不能位运算吗?
我的思路是用<<n,表示2的n次幂
第一张图,貌似是提示左边是double,右边是int,
第二张图,把右边改成double,还是报错,
第三张图,把代码中值都换成int,同时放大100倍,成功。
题目是,我国最高山峰是珠穆朗玛峰,8848米。现在我有一张足够大的纸,它的厚度是0.01米。
                  请问,我折叠多少次,可以折成珠穆朗玛峰的高度。
作者: ffuujian    时间: 2015-4-6 23:28
  1. class Num
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 double n=0;
  6.                 double high=0.01;
  7.                 while (high < 8848.00)
  8.                 {
  9.                         n++;
  10.                         high=0.01<<n;
  11.                 }
  12.                 System.out.println("需要折叠"+n+"次");
  13.         }
  14. }
复制代码

作者: ffuujian    时间: 2015-4-6 23:29
  1. class Num
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int n=0;
  6.                 int high=1;
  7.                 while (high < 884800)
  8.                 {
  9.                         n++;
  10.                         high=1<<n;
  11.                 }
  12.                 System.out.println("需要折叠"+n+"次");
  13.         }
  14. }
复制代码

作者: sisel    时间: 2015-4-6 23:39
  1. public class Shift {

  2.         public static void main(String[] args) {
  3.                 //以cm计珠峰高度
  4.                 final int everest=884800;
  5.                 //纸厚
  6.                 int paperThickness=1,
  7.                                 //折叠次数
  8.                                 count = 0;
  9.                 while(true){
  10.                         if(paperThickness>=everest){
  11.                                 break;
  12.                         }
  13.                         paperThickness= paperThickness<<1;
  14.                         count+=1;
  15.                 }
  16.                
  17.                 System.out.println("需要折叠"+count+"次才能达到珠峰高度");
  18.         }

  19. }
复制代码

作者: 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