/*******************************************************************************
?*
?* 乘除法和等效的位運算
?*
?* 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 閱讀(3116)
評論(3) 編輯 收藏 所屬分類:
Java