• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:整数演算または論理演算しか使わない分野)

整数演算または論理演算しか使わない分野

このQ&Aのポイント
  • 整数演算または論理演算しか使わない分野についてのレポートを作成するための情報を求めています。
  • 現在、多くの科学技術分野では小数点での計算が主に利用されていますが、整数演算または論理演算のみを使う分野も存在します。
  • 2進数データの撹拌に関するセキュリティや信号処理など、具体的な分野についての情報を教えていただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • hashioogi
  • ベストアンサー率25% (102/404)
回答No.2

確かにNo.1さんが書いているように組み込み系では整数演算にする場合が多いですね。 浮動小数点数演算にすれば正確な値が得られますけど、実用的には必要はない場合が多いでしょ?例えば、車の速度を58.765432km/hなんて細かく求めたところであまり意味がないじゃないですか。 ですからまず浮動小数点数演算でやってみて、ある程度うまくいけば支障のない範囲で整数演算にしてしまうことがあります。 「ある種の」最小二乗法の計算も整数演算だけで行うことができます。計算結果は浮動小数点数演算と同じでしかも高速、計算も簡単です。回帰式の次数が高いほど高速な点が有利になります。 ですから、確かに有限体を使用した暗号化や誤り訂正符号化のように最初から整数演算しか考えられない例もありますが、そうではない例もいろいろあるということだと思います。つまり組み込み系ではどんなところでも整数演算にする種が転がっているということでしょう(浮動小数点数演算の方がプログラミングの手間がかかない場合が多いかもしれませんけど)。

g47040
質問者

お礼

回答有難うございます。 はやり整数演算しか考えられないのは、有限体を使用した暗号化や誤り訂正符号化とかになってくるのですかね。 どちらの回答も大変勉強になったので、BAをどちらにするか迷ったのですが、求めていた情報はhashioogiさんの方でした。 従って、BAはhasioogiさんに差し上げたいと思います。 またお世話になることがあったらよろしくお願いします!

その他の回答 (1)

  • ur2c
  • ベストアンサー率63% (264/416)
回答No.1

「整数演算または論理演算しか使わない分野」というより、「浮動小数点がなくて整数演算しかつかえない processor で実装することが多い分野」ならあります。いわゆる embedded software (組込みソフトウェア)です。embedded programming とか fixed point arithmetics とかの keywords で検索すると情報がいろいろ得られると思います。 Hardware では整数演算だけで浮動小数点演算ができないという processors は世の中にたくさんあります。PLC (programmable logic control) とか DSP (digital signal processor) の多くがそうです。 たとえば SpiNNaker brain simulation machine という project http://www.artificialbrains.com/spinnaker では ARM968 という安い RISC processors をいっぱいつないで脳(の一部分)の simulation をやっちゃおうという話をしています。 そういう安い hardware で普通の数値計算をやるときは、やりかたが大きく分けて2つあります。1つは A: 浮動小数点の emulation です。もう1つは B: 固定小数点 というやりかたです。A は遅くて使いたくないことがよくあります。 B は演算自体は整数で、 B1: 整数を小数点付きの数値であると解釈する やりかたと、 B2: 分数であると解釈する やりかたがあります。 B1 は典型的には、たとえば1つの数値を 32-bit cell で表わす場合、 [符号 1-bit] + [整数部分 15-bit] + [小数 16-bit] = [32-bit] と解釈します。B2 はたとえば [符号付き分子 16-bit] + [分母 16-bit] という表現になるらしいです。(B2 についてはあまり興味がなく、よく知りません。) B1 の解釈だと、掛算、割算をする場合、途中結果が 64-bit 必要です。そこで B1.1: 64-bit の中間結果を許す というやりかたと B1.2: あくまでも 32-bit でやる という点で方針が別れます。B1.2 を突き詰めて、数値の表現を 仮数部 + 指数部 という浮動小数点で表現する代わりに仮数部なしの指数部だけで表現しちゃおうという C: 対数表現 というやりかたもあります。これは [符号 1-bit] + [log 絶対値 31-bit] です。この表現だと掛算が足し算に変換されて速いのですけど、足し算が table lookup を伴って遅くなります。 Computer architecture の話にするなら「D で table lookup を hardware 的に速くすれば浮動小数点より安くできて、演算は速いんじゃないか」と個人的には思ってます。その場合、内挿をどうするかとか、おもしろい話がありそうです。

参考URL:
http://www.ece.ucsb.edu/~parhami/pubs_folder/parh02-arith-encycl-infosys.pdf
g47040
質問者

お礼

大変詳細にありがとうございます! 「安い hardware で普通の数値計算をやるときは、やりかたが大きく分けて2つあります。」 ここのところが、大変勉強になりました。 頂いた情報を基に、自分なりに詳しく掘り下げてみたいと思います。