
No.4
- 回答日時:
> ただし、ループで10を引き続けてカウントする方法は除外させてください。
ループで10を足し続けて、被除数を越える直前の値が商。
No.3
- 回答日時:
学生さんの宿題ですかねぇ。
除算がダメなら0.1を乗算すればいいのでは、とか詭弁を使ってみたりして。冗談はさておき、除算にはいくつかのアルゴリズムがありますが、復元法なら簡単だと思います。2で割る部分はシフトで求めます。
詳しいアルゴリズムはこんなところで。
参考URL:http://www.elc.ees.saitama-u.ac.jp/ITO/Ex4/divid …
回答ありがとうございます。
恥ずかしながら理解するのに時間が掛かりました。
実のところ、ループも使わずに出来ないかと思うのですが
お手数ですが他の方法をご存知であればご教示ください。
今回の回答に不満があるというわけではありません。
実際プログラムを組んでみて、例えば数kBの数値を除算するのにどれほどの時間が掛かるか試して見る必要があります。
マルチバイトの比較やシフトなんかも組まないといけないので
今実際に試すことができません。
回答には大変感謝しております。
ありがとうございました。
また、他の回答も随時受け付けております。
No.2
- 回答日時:
課題じゃないんですか?
だと、そのまま質問するのはルール違反なんですけど。
こういうのはヒントになるでしょうか。(全然役に立たないかも知れませんが。)
論理演算可能な数値らしいので、浮動小数点とかではないですよね。
・乗算せずに10倍する方法。
・3bitシフトして8倍の値と、1bitシフトして2倍の値を得る。
・それらを加算すると10倍の値を得られる。
回答ありがとうございます。
申し訳ありませんが、乗算に関しては自分でいろいろやって、お書きになった方法に関してもよく理解しているつもりです。
しかしながら、除算になると事が違ってきます。
単純に、2で割ったものと8で割ったものを引いても足しても意味がありません。
2進数では1/10が循環小数になってしまうのです。
いくつか近似値を求める方法は試したのですが、うまく誤差の修正がいきません。
200弱くらいまでしか正しい結果を得られませんでした。
これをマルチバイトに適応するとなるともっと効率のいい方法が必要になると感じています。
情報が少なくて申し訳ありませんでした。
ありがとうございました。

No.1
- 回答日時:
素直に除算を使用して10で割るのが、自然だとおもうのですが、
どうして、除算を使用してはいけないのでしょうか。(コンパイラが除算をサポートしていないのでしょうか)
その辺の事情を書かれると、良い回答が得られるかもしれません。
この回答への補足
そうですね、いろいろ用途があります。
例えば、32ビットを超える多倍長のバイナリを10進数表記にしたり
それを使って、2進化10進数への変換を行ったり
方法によっては多倍長演算にも使えそうですかね。
多倍長演算に関しては、数値を文字列に変換して行うのが基本だと思うのですが
バイナリで行いたいと常々感じていました。
言語によっては初めからサポートされてるものもあるようですが
実際に使った事は無いので結果がバイナリで出力されるのかどうかわかりません。
もちろんC言語ではサポートされていないので実装したいとも思っています。
多倍長のバイナリ16進数から10進数に変換する方法だけでもいいです。
たぶん、そのほうが手っ取り早いです。
うまく説明できているかどうかわかりませんが、問題解決に協力していただきたいです。
友人に説明したところ、何言ってるかわからないと言われました。すみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
有効数字について 以前質問をし...
-
O(n log n)について2
-
三菱シーケンサ(Aシリーズ)で...
-
教えて小数点の比較!(C言語)
-
べき指数の求め方
-
【C言語】RGBと輝度の計算に関して
-
コンピューターは指数関数をど...
-
VB6.0での小数点の扱いについて
-
100桁の計算ができなくて困って...
-
Excelで小数点以下の値が正常に...
-
CASLIIの質問です。
-
時刻の比較
-
三角比の俯角の計算
-
浮動小数点演算を固定小数点演...
-
C言語でセルオートマトンを作成...
-
2÷3などの余りについて
-
「Aに対するBの割合」と「Aに対...
-
20'(角度)の計算がわかりま...
-
Enterキーを押されたら次の処理...
-
C言語での引数の省略方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
有効数字について 以前質問をし...
-
ExcelでPC(パソコン)によって...
-
c languageで 簡単な質問があ...
-
VB.net Double と...
-
O(n log n)について2
-
EXCELの関数"STDEV(標準偏差)"...
-
”/”を使わずに割り算したいんで...
-
三菱シーケンサ(Aシリーズ)で...
-
16進数 加算 減算 C言語
-
floatの有効桁数
-
2進数の足し算(C言語)
-
VB6.0での小数点の扱いについて
-
ExcelのINT関数の計算結果がお...
-
色の判定
-
BCD・HEX・BINについて
-
距離から緯度経度を求める方法
-
除算を使わずに10で割りたい。
-
VBAでミリ秒まで出力する方法
-
どんな数字を入力してもaverage...
-
VB6のFIX関数での誤差について
おすすめ情報