プロが教えるわが家の防犯対策術!

二進数をc言語を用いて乗算したいのですが、
足し算と同じやり方でしか
思い浮かびません。
桁上がりを考慮するように頑張っても
正しい答えが出ません。


ifをたくさん使うやり方ではできるのですが・・・
あまりそれではプログラムが長すぎてしまします。
よろしくお願いします。

A 回答 (3件)

何をしたいかよく分からないのですが、


桁の多い多倍長の整数の乗算をしたいという話でしょうか?
勉強の為に直接乗算の演算子を使わずに計算してみたいという話でしたら、
2進数の2倍や半分はビットシフトを使うと高速に計算できるので、これを利用すれば乗算を高速に計算できます。(参考URL)
Cで乗算の計算式をコンパイルすれば、内部ではこの様なアルゴリズムやアセンブラの乗算命令などにコンパイラが最適化してくれます。

参考URL:http://d.hatena.ne.jp/sh-2/20100605/1275763021
    • good
    • 0

入力された2進数を10進数に変換して


計算結果を2進数に戻せばいい
この様に考えれば、8進数と2進数の四則演算も容易にできます
プログラミングとは、問題を解決するための手段であり
柔軟な発想ができなければ、つまらないだけですよ
頑張ってください
    • good
    • 0

何をしたいのか, もっと詳しく書いてください.



単に
a*b
だけでも十分だったりしませんか?
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!