![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_04.png?5a7ff87)
8~16bit、32bitのマイコンでCの組み込みプログラムを仕事で作りはじめました。
その中で、floatやdoubleといった実数型は使わないようにと教わりました。コードサイズが大きくなること、処理時間が大きくなることが理由だと考えていますが、定量的に考察したことがありません。
そこで、コンパイラのhelpを検索してみたところANSI-Cで決められているほど広くないにしても使えることが書いてありました。しかしながら、先輩たちはその使用をかたくなに拒みます。しかし、理由も先ほどのような感じです。
もし仮に、コードサイズや処理時間に問題ないとしても実数型を使わない理由を教えていただけませんでしょうか?
A 回答 (12件中11~12件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
どのような組み込み機器なのかは不明ですが……
CPUと開発環境が用意しているのであれば実数型を使うことは可能でしょう。
場合によってはエミュレートになるかも知れませんが。
その場合の処理ステップの増加にヨルコードサイズの増加、およびそれらを処理するクロック分の処理時間が増える。
といっているのではないでしょうか?
また、実数型での演算では誤差が発生する可能性がありますから、その誤差に関しての処理の追加も必要になるかも知れません。
組み込みだと潤沢なメモリやCPUパワーが用意されるわけではないでしょうから、『使わない』という社内ルールにした方がよい。
ということなのかも知れません。
# 先日、スタックの使用量について問い合わせを受けたことが。
# グローバル領域に追い出したりすることで使用量は抑えられることを確認していますが…
# 実施の指示がありませんでしたのでそのままです。
# 実施した場合はシステム試験やり直しになるので。
ありがとうございます。
>『使わない』という社内ルールにした方がよい。ということなのかも知れません。
おそらく、誰もやったことがないので避けているのだと思います。
処理時間、コードサイズ、精度(誤差)の問題がクリアできれば「使える!」といって差し支えないか心配をしているところです。
AD値を物理量と関連付けた計算をするときに、32~16bit整数の範囲で何回も係数を掛けたり足したり、あげく桁合わせをしたりとするなら、実数で計算することも検討した方が良いのではないか?と考えています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- JavaScript Typescript が必要な理由 1 2023/01/07 11:45
- JavaScript プルダウンから1個選んで、豆知識を出すプログラム。 2 2022/06/21 17:27
- Excel(エクセル) 時間差を求めるマクロコードを教えてください。 4 2022/05/17 18:22
- Java Javaの問題なのですが、 永久ループを使って以下に従って数値を出力するプログラムを作成する。 ・1 3 2023/06/06 18:43
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- 環境学・エコロジー 発電量が大きい発電機を作るためには 4 2023/02/25 21:17
- その他(教育・科学・学問) 大学理系研究室における器材の貸し出しや取り決めについて 1 2022/12/01 22:04
- その他(法律) 役所の人間が勝手に間違えて振込、それを知って使って刑事事件とか、不当逮捕そのものでは? 5 2022/05/22 15:13
- 副業・複業 『Webライター』になりたいです。 まずブログSNS副業に興味関心がありました。 そして大きな目標と 14 2023/06/16 14:01
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
C言語での引数の省略方法
C言語・C++・C#
-
C言語の型による処理速度の違い
C言語・C++・C#
-
DWORDの実際の型は何でしょうか
C言語・C++・C#
-
-
4
<unistd.h>をVisualStudioでつかえるようにする
C言語・C++・C#
-
5
PICで小数点の演算
その他(プログラミング・Web制作)
-
6
C言語のサフィックスについて
C言語・C++・C#
-
7
データ型 double の桁数について
C言語・C++・C#
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パイプライン処理の処理能力に...
-
VBAでのコントロール操作
-
組み込みCプログラムで実数型
-
MIPS と クロック周波数の換算方法
-
CPUのHTについて教えてください。
-
PICマイコンのプログラムについ...
-
COM1(RS232C)とUSB仮想COMポー...
-
64ビット化による処理速度低下...
-
VBSとVBA
-
H8Sで割り込み発生時の飛び先ア...
-
x86系のCPUとは?
-
電子透かしを使用した場合の著...
-
文字の容量(サイズ)についての...
-
【有効数字について】 授業で、...
-
EXCELでの16進数取り出し、上...
-
KBのMB違いって
-
ワードの改行について
-
実行計画の「COST」と「BYTE」...
-
携帯電話の略語であるMBって英...
-
EXCEL16進⇒浮動小数変換したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラム言語FortranとCの違...
-
命令網羅率の計算問題です
-
組み込みCプログラムで実数型
-
VBSとVBA
-
VBAでのコントロール操作
-
COM1(RS232C)とUSB仮想COMポー...
-
MIPS アセンブリ言語
-
なぜ、i++なのか?(ものすごく...
-
64ビット化による処理速度低下...
-
アセンブリ言語で。
-
パイプライン処理の処理能力に...
-
任天堂64の64 CPUの仕...
-
ステート数とは
-
arduino
-
マイコンのビット数とクロック数
-
H8Sで割り込み発生時の飛び先ア...
-
IPCについて
-
PICマイコンのプログラムについ...
-
MIPS と クロック周波数の換算方法
-
CPUのHTについて教えてください。
おすすめ情報