posts - 41,  comments - 40,  trackbacks - 0

          /*******************************************************************************
          ?*
          ?* 乘除法和等效的位運算
          ?*
          ?* 1024 = 2*2*2*2*2*2*2*2*2*2 = 100 0000 0000
          ?*
          ?******************************************************************************/
          class BitOperation
          {
          ? public static void main( String[] args )
          ? {
          ??? //被除數
          ??? long dividend=182495073L;

          ??? long temp=0L;

          ??? long begin=0L;


          ??? ////////////////////////////////////////////////////////////////////////////
          ??? //
          ??? // dividend/1024等效于dividend>>10
          ??? //
          ??? ////////////////////////////////////////////////////////////////////////////
          ??? begin=System.currentTimeMillis();

          ??? for( int i=0; i<10000000; i++ )
          ?????? {
          ???????? temp=dividend/1024;
          ?????? }

          ??? System.out.println( temp+" 總共耗時:"+( System.currentTimeMillis()-begin )+"毫秒" );

          ??? begin=System.currentTimeMillis();

          ??? for( int i=0; i<10000000; i++ )
          ?????? {
          ???????? temp=dividend>>10;
          ?????? }

          ??? System.out.println( temp+" 總共耗時:"+( System.currentTimeMillis()-begin )+"毫秒\r\n" );


          ??? ////////////////////////////////////////////////////////////////////////////
          ??? //
          ??? // dividend*1024等效于dividend<<10
          ??? //
          ??? ////////////////////////////////////////////////////////////////////////////
          ??? begin=System.currentTimeMillis();

          ??? for( int i=0; i<10000000; i++ )
          ?????? {
          ???????? temp=dividend*1024;
          ?????? }

          ??? System.out.println( temp+" 總共耗時:"+( System.currentTimeMillis()-begin )+"毫秒" );

          ??? begin=System.currentTimeMillis();

          ??? for( int i=0; i<10000000; i++ )
          ?????? {
          ???????? temp=dividend<<10;
          ?????? }

          ??? System.out.println( temp+" 總共耗時:"+( System.currentTimeMillis()-begin )+"毫秒\r\n" );


          ??? ////////////////////////////////////////////////////////////////////////////
          ??? //
          ??? // dividend%1024等效于dividend-( dividend>>10<<10 )
          ??? //
          ??? ////////////////////////////////////////////////////////////////////////////
          ??? begin=System.currentTimeMillis();

          ??? for( int i=0; i<10000000; i++ )
          ?????? {
          ???????? temp=dividend%1024;
          ?????? }

          ??? System.out.println( temp+" 總共耗時:"+( System.currentTimeMillis()-begin )+"毫秒" );

          ??? begin=System.currentTimeMillis();

          ??? for( int i=0; i<10000000; i++ )
          ?????? {
          ???????? temp=dividend-( dividend>>10<<10 );
          ?????? }

          ??? System.out.println( temp+" 總共耗時:"+( System.currentTimeMillis()-begin )+"毫秒\r\n" );
          ? }
          }

          posted on 2007-09-17 09:17 NeedJava 閱讀(3123) 評論(3)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 永新县| 八宿县| 来宾市| 溧水县| 广宗县| 昂仁县| 来安县| 游戏| 滁州市| 南丹县| 宜川县| 延长县| 云南省| 定日县| 来宾市| 永兴县| 靖安县| 台安县| 桦南县| 河曲县| 衡水市| 黄龙县| 麻城市| 镇宁| 永登县| 固镇县| 彰化市| 崇阳县| 北安市| 织金县| 霸州市| 太湖县| 三亚市| 汉中市| 白城市| 福清市| 日照市| 云梦县| 监利县| 鱼台县| 沙坪坝区|