Javaプログラミング学習サイト ゆるゆるプログラミング

・Javaソースダウンロード(MultipliedBitshift1.java)

足し算とビットシフトを使った掛け算メソッドのJavaソースコードです。2進数の筆算をプログラム化したものです。

このソースについての記事はこちら「足し算とビットシフトによる掛け算」です。

MultipliedBitshift1.javaをダウンロード

ダウンロードしたファイルはzip形式です。解凍して使ってください。Windowsの場合、ダウンロードしたzipファイルをマウスの右ボタンでクリックして表示されるポップアップメニューから「すべて展開(T)」で解凍できます。

public class MultipliedBitshift1 {
	// 左ビットシフトと足し算による掛け算 a×b 
	static int multiplied( int a, int b )
	{
		// 変数の宣言
		int ans;
		int checkbit;

		// aとbのどちらかが0なら0を戻す
		if ( ( 0 == a ) || ( 0 == b ) ) return 0;

		// bのビットの有無を確認するための値
		checkbit = 1;

		// 結果ansの初期値に0を代入
		ans = 0;

		// 32回(32ビット)のループを作成
		for ( int i = 0; i < 32; ++ i ) {
			// checbitの位置のビットが1たっだら
			// ansにaを足す
			if ( 0 != ( b & checkbit ) )
				ans += a;

			// aを左シフト(×2)
			a = a << 1;

			// checkbitを左シフト(×2)
			checkbit = checkbit << 1;
		}

		// 結果を戻す
		return ans;
	} 


	// メイン
	public static void main( String[] args ) {
		// 変数の宣言
		int a, b, ans;

		// 29×25=725
		a = 29;
		b = 25;
		ans = multiplied( a, b );
		System.out.println( a + "×" + b + "=" + ans );

		// 33×109=3597
		a = 33;
		b = 109;
		ans = multiplied( a, b );
		System.out.println( a + "×" + b + "=" + ans );

		// 10001×8828=88288828
		a = 10001;
		b = 8828;
		ans = multiplied( a, b );
		System.out.println( a + "×" + b + "=" + ans );
	}
}

このソースについての記事はこちら「足し算とビットシフトによる掛け算」です。

 

■新着情報

2022.07.07 外部プログラムの実行 exeファイル実行
2022.07.06 完全数 6=1+2+3

■広告

 

 

 

 

Topへ