katsuragi さん > > この時は、double と float は同じにコンパイルされ(HEWの初期のもの) > > どちらも倍精度浮動小数点形式になってました。 > > (演算コード(機械語)の結果まではチェックしていません。) > > これはないと思いますよ。 > HEWならば、コンパイラはANSI規格準拠ですから、floatは単精度で演算するはず。 > きっと浮動小数点定数に接尾子 f や F を付け忘れたのでは? なるほど。定数の後ろにはf、Fをつけないと、doubleになるのですね・・・orz 何しろ当方の持ってるK&Rは、ANSI策定前の教本(初版)なので、 その後、ANSIで知らぬ間に言語仕様が変更・追加され、 K&Rの教本も、ANSI規格に対応して、内容がかなり改定されてしまいました・・・orz 例えば、関数のプロトタイプ宣言など、ANSI規格の仕様は、当方の初版K&Rには 何も書かれていません。 コンパイラ毎にばらばらだったC言語仕様が、ANSI規格策定がされて決まったことを 知らない時期があり、後に、K&R初版言語仕様と、ANSI規格C言語仕様の違いで面くらった 経験があります。 最初からANSI Cに改定されたC言語教本で習ってる人や、ANSI規格策定の時期に うまく追従した人は、それ違いますよ、という仕様部分があると思われます。 ちなみにその時は、Windows95->98の切り替え時期で、HEWを走行させるのにも苦労しました。 Windows95パソコンではHEWは何度でも正常にコンパイルできるものの、 Windows98パソコンに交替したら3回ほどコンパイルを繰り返すとリソース不足となり Windows98がハングアップを繰り返し、パソコンが固まってしまうのでした。 HEWを使うことが優先だったため、新パソコンごと返品したりするはめに・・・ これは多分Windows95->98への仕様変更が原因と思います。 近年では、もはや、何それ今頃・・・と言われそうなBorland C++4.0で、 using namespace std ; などの文がコンパイルエラーになり、何故だろう?・・・と思っていたら、 知らぬ間にC++言語仕様が変わっており、古いBorland C++4.0では 新しいC++言語がコンパイルできず、急遽、新しいC++言語対応の Borland C++5.5を入手した、・・・という失敗をしでかしました。 この時にも自分の無知・愚かさを痛感しました・・・orz ただ、BorlandがこのようなFreeのC/C++コンパイラを出してくれるのは大変に ありがたいことと感謝しています。 > > H8にも積和演算機能を入れたみたいな話も以前聞きましたが、 > > その当時は職業人でしたので応用先は限定されました。 > > 使う人は、DSPでは、TIかアナデバが主流でしょうかね。 > > H8で積和を持っているのはH8S/2600のCPUですね。 > これだけMACレジスタがありますから。 > > また、SHのHEWにはDSP-C言語の使用があり、固定小数点の演算をC言語で記述できるみたいです。 > 実際に使ったことはありませんが。。。 固定小数点と浮動小数点の違いによる計算で、計算座標の値がずれた失敗経験があります。 今でも精度の高い数値計算は難しいと思ってます。 dimension