数値処理
コンピューターで処理されるいかなる情報も、三つの主要な局面を経過する。第1は、データのエントリー 1または入力 1である。これは、パンチカード(224-3*)を用いるか、あるいはコンソール(227-8)のようなオンライン 2による方法によって行われる。コンピューターにすでに保管されているデータは、中央記憶装置(226-2)からか、あるいは大容量記憶装置(226-3)の一つから得ることができ、入力データとして用いられる。第2の局面であるデータ処理(220-2)は、二つの主要なタイプ、すなわち数値処理 4と非数値処理 5とに区分される。統計的あるいは算術的計算は、通常前者に含まれる作業である。一方、データの加工操作の作業は、後者の主要なものである。しばしば、出力の段階といわれる第3の局面においては、処理結果 6またはアウトプット 6は、ライン・プリンター(227-6)上で印刷され、あるいは後の段階でのデータ処理のために大容量記憶装置(226-3)上でファイルに保存されることもある。処理結果をグラフや画像の形で得るために、結果はまた、プロッター 7に転送されることもある。
数値処理
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/17 21:54 UTC 版)
「C SharpとJavaの比較」の記事における「数値処理」の解説
数学・科学計算・金融分野のアプリケーション開発に十分対応するための言語仕様が、それぞれに存在する。Javaでは厳密な浮動小数点計算を強制するためにstrictfpキーワードが存在する。これによってあらゆるプラットフォームで必ず同じ値が結果として得られることを保証することができる。C#にはこれに相当する機能はないが、厳密な浮動小数点計算のためにdecimal型が存在する。これによって二進浮動小数点表現(float、double)に存在する問題が解決される(二進表現の浮動小数点数は十進数を正確に表現することができないため、丸め誤差が生じてしまう)。金融分野のアプリケーションソフトウェアでは厳密な十進表現は必須である。Javaでは、このような用途のためにjava.math.BigDecimalが導入されている。また、Java 1.1では巨大な整数を扱うためのクラス型としてjava.math.BigIntegerが導入されている。BigDecimalとBigIntegerは最大で約21億桁程度までの数を任意精度で表現できる。C#においては、.NET Framework 4よりSystem.Numerics.BigInteger型が導入されている。 Javaでは、BigDecimalや複素数型といったライブラリ定義の型をプリミティブ型と同じレベルで使用することは不可能である。また、Javaではユーザー定義型はすべて参照型扱いとなり、メモリブロックの実体はヒープに確保される。一方、C#は次のような機能をサポートする。 演算子多重定義やインデクサ。 暗黙的または明示的な型変換。C++のキャスト演算子オーバーロードに似た、ユーザー定義の型変換を定義できる。これにより、例えばプリミティブ数値型同士の変換と類似の機能を提供できる。 値型と値型に対するジェネリック型。値型はスタックに確保される。これは実行時の性能面に影響を及ぼす。 これらに加え、C#では数値処理アプリケーションのために、コード中の特定領域の数値オーバーフローの実行時チェックの有効・無効を制御することができるchecked/uncheckedキーワードを使用できる。
※この「数値処理」の解説は、「C SharpとJavaの比較」の解説の一部です。
「数値処理」を含む「C SharpとJavaの比較」の記事については、「C SharpとJavaの比較」の概要を参照ください。
- 数値処理のページへのリンク