ホームページ コンピューターのチュートリアル コンピュータ知識 JAVAにおけるdouble型浮動小数点演算の詳細な分析

JAVAにおけるdouble型浮動小数点演算の詳細な分析

Jan 15, 2024 am 09:57 AM
デュアル浮動小数点コンピュータ

JAVAのdouble型浮動小数点演算については説明が必要です

ダブル f=0.0005;

ダブル i=3;

ダブル d=f*i;

ダブル f1=0.0005;

ダブル j=3;

ダブル d1=f1*j;

if(d==d1){

System.out.println("aaa");

}これは同等です。Java の基本データ型は自動変数と呼ばれます。自動変数にはリテラル値が格納されます。リテラル値のデータ サイズと有効期間は既知であるため、速度上の理由からスタックに配置されます。スタック内のデータは共有できます。たとえば、int a=3 int b=3 の場合、コンパイラは最初に int a=3 を処理し、最初にスタック上の変数 a への参照を作成し、次にアドレスを検索します。リテラル値が 3 である場合、リテラル値 3 を格納するアドレスを開いて int b=3 を処理し、変数 b を使用してアプリケーションを作成した後、リテラル値 3 を持つアドレスがあるかどうかを確認します。これが存在するので、3のアドレスを指します。==を使用した場合(アドレスが同じかどうかを判断する場合)、True

になります。

CPU浮動小数点演算とは

1. 以前はコプロセッサーと呼ばれていた浮動小数点パフォーマンス 486 は、以前の CPU には含まれていませんでした (8086~8087、80286~80287、80386~80387=80386DX、80486SX~80487=80486DX、586=586 587 ...)浮動小数点演算は、主に科学やマルチメディアで使用される高精度演算手法です。

2. 小数点を移動できる演算方法と理解できます。現在の速度 AMD>>Inter

3. 浮動小数点数は、-10.8、0.00、25.01 など、小数点以下の桁数が制限された有理数を指します。

4. 浮動小数点演算の場合、結果は浮動小数点数となり、計算結果の小数部分は保持されます。

例: 浮動小数点演算を使用する場合、100.0÷3.0=33.33333333。

####5 例えば、銃弾が壁に当たって土が落ちた場合、強力な浮動小数点計算を使えば、落ちてくる塵を表示できるかもしれません。

採用希望

C言語の単精度浮動小数点型と倍精度浮動小数点型の違い!一体どんな3・14なのでしょうか? 3 14159

3.14 は単精度、3.14159 は倍精度です。

両者の違いは次のとおりです:

1. さまざまな参考文献

1. 単精度: コンピューターが実数の近似を表現する方法を指します。

2. 倍精度: このデータ型は単精度データ型 (float) に似ていますが、float よりも精度が高くなります。

JAVAにおけるdouble型浮動小数点演算の詳細な分析

2. 占有スペースの違い

1. 単精度: 数値が負の場合、範囲は -3.402823E38 ~ -1.401298E-45、数値が正の場合、1.401298E-45 ~ 3.402823E38 です。

2. 倍精度: 倍精度型は 8 バイト (64 ビット) のメモリ空間を占有し、その値の範囲は -1.79769313486232E308 ~ 1.79769313486232E308 です。

3. 異なる特徴

1. 単精度: 値が上記の値より小さい場合、(IEEE 754 で規定されている) 仮数部の有効桁数が減少するため、精度が徐々に失われます。または、一部のシステムでは、処理プロセスを簡略化するために値 0 を指定します。

2. 倍精度: コンパイル中に占有されるメモリ空間はコンパイラによって異なりますが、C/C の実変数を表す変数型である double float データ型です。

参照元:百科事典単精度

参照元: Encyclopedia-Double Precision Floating Point

コンピュータで浮動小数点を表現する方法

浮動小数点は、整数または固定小数点数 (つまり、仮数) に特定の基数 (通常、コンピューターでは 2) の整数乗を乗算することによって得られます。この表現方法は、基数 10 を使用する科学表記法に似ています。 。

浮動小数点数 a は、2 つの数値 m と e で表されます: a = m * b^e (b の e 乗)。

そのようなシステムでは、基数 b (表記法の基数) と精度 p (つまり、ストレージに使用するビット数) を選択します。 m (つまり、仮数) は、±d.ddd...ddd の形式の p 桁の数です (各ビットは、0 と b-1 を含む 0 と b-1 の間の整数です)。 m の最初のビットがゼロ以外の整数の場合、m は正規化されたと呼ばれます。

一部の説明では、正または負を示すために別の符号ビット (s または -) を使用するため、m は正でなければなりません。 e は指数です。

次の 3 つの方法を使用して浮動小数点数を表現できます:

1. BCD コード。

2. 指数コードの仮数表現。

3. 2 番目のメソッドを変換して、より良いメソッドを取得できます。浮動小数点数の小数点を最後に移動してN=M*RC、R=10で表し、Mを2進数のBに変換し、指数コードをC、仮数部をBとして表します。指数コード仮数部方式を使用します。

例: 3.14159=314159*10^(-5)。

314159 はバイナリで 1001100101100101111 と表現されます。

この方法を使用すると、浮動小数点数の値を正確に表現できるだけでなく、記憶域を最大限に活用することもできます。

JAVAにおけるdouble型浮動小数点演算の詳細な分析

詳細情報:

浮動小数点ユニット (FPU)

浮動小数点演算は整数演算とは異なるため、演算単位も当然異なります。初期の浮動小数点プロセッサは、CPU の「外部コプロセッサ」として登場しました。 x87 FPU は、特に x86 プロセッサで使用される浮動小数点コプロセッサ アーキテクチャを指します。

次の点が含まれます:

1. 浮動小数点レジスタはスタック構造を採用しています。

深さは 8、幅は 80 ビット、つまり 8 つの 80 ビット レジスタです。

名前は ST(0) ~ ST(7)、スタックの先頭は ST(0)、番号はそれぞれ 0 ~ 7 です。

2. すべての浮動小数点演算は 80 ビットの拡張精度で実行されます。

3. 浮動小数点数は浮動小数点レジスタとメモリの間で転送されます。

(1) Float、double、long double 型の変数は、メモリ内で IEEE 754 の単精度、倍精度、拡張精度でそれぞれ表され、それぞれ 32 ビット、64 ビット、96 ビットを占有します (最初の 16 ビットは無効)。

(2) Float、double、long double 型の変数はすべて、浮動小数点レジスタで 80 ビットの拡張精度で表現されます。

(3) 浮動小数点レジスタからメモリへ: 80 ビット拡張精度フォーマットは 32 ビットまたは 64 ビットに変換されます。

(4) メモリから浮動小数点レジスタへ: 32 ビットまたは 64 ビットを 80 ビット拡張精度形式に変換します。

参照元: Encyclopedia-Floating Point

百科事典 - 浮動小数点表現

以上がJAVAにおけるdouble型浮動小数点演算の詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Windowsエラーコードを解く方法(0x00000004) Windowsエラーコードを解く方法(0x00000004) Mar 11, 2025 am 11:26 AM

この記事では、Windows "Invalid_data_access_trap"(0x00000004)エラー、重要なBSODについて説明します。 故障したドライバー、ハードウェアの誤動作(RAM、ハードドライブ)、ソフトウェアの競合、オーバークロック、マルウェアなどの一般的な原因を調査します。 問題

ENE SYSメンテナンス:システムをスムーズに実行するためのヒントとコツ ENE SYSメンテナンス:システムをスムーズに実行するためのヒントとコツ Mar 07, 2025 pm 03:09 PM

この記事では、ENE SYSシステムを維持するための実用的なヒントを提供します。 過熱やデータの破損などの一般的な問題に対処し、定期的なクリーニング、バックアップ、ソフトウェアの更新などの予防策を提供します。 テーラードメンテナンスs

ENE SYSの実装中に避けるべき5つの一般的な間違い ENE SYSの実装中に避けるべき5つの一般的な間違い Mar 07, 2025 pm 03:11 PM

この記事では、ENE SYSの実装における5つの一般的な落とし穴が特定されています。計画不足、不十分なユーザートレーニング、不適切なデータ移行、セキュリティの無視、およびテスト不足です。 これらのエラーは、プロジェクトの遅延、システムの障害につながる可能性があります

レジストリを編集するにはどうすればよいですか? (警告:注意して使用してください!) レジストリを編集するにはどうすればよいですか? (警告:注意して使用してください!) Mar 21, 2025 pm 07:46 PM

記事では、誤った編集からWindowsレジストリ、予防策、バックアップ方法、潜在的な問題の編集について説明します。主な問題:システムの不安定性と不適切な変化によるデータ損失のリスク。

Windows設定でドライブヘルス警告を修正する方法を発見する Windows設定でドライブヘルス警告を修正する方法を発見する Mar 19, 2025 am 11:10 AM

Windowsの設定でのドライブヘルス警告はどういう意味ですか?ディスク警告を受け取ったときに何をすべきですか?このPHP.CNチュートリアルを読んで、この状況に対処するための段階的な指示を取得してください。

Windowsでサービスを管理するにはどうすればよいですか? Windowsでサービスを管理するにはどうすればよいですか? Mar 21, 2025 pm 07:52 PM

記事では、システムの健康のためのWindowsサービスの管理、開始、停止、サービスの再起動、安定性のためのベストプラクティスなどについて説明します。

どのアプリケーションがENE.SYSを使用していますか どのアプリケーションがENE.SYSを使用していますか Mar 12, 2025 pm 01:25 PM

この記事では、ENE.SYSがRealTekの高解像度オーディオドライバーコンポーネントとして識別します。 オーディオハードウェアの管理における機能を詳しく説明し、オーディオ機能における重要な役割を強調しています。 また、この記事は、ユーザーの正当性の確認についてもガイドしています

なぜドライバーはasio.sysロードしないのですか なぜドライバーはasio.sysロードしないのですか Mar 10, 2025 pm 07:58 PM

この記事では、Windows ASIO.SYSオーディオドライバーの障害について説明します。 一般的な原因には、破損したシステムファイル、ハードウェア/ドライバーの非互換性、ソフトウェアの競合、レジストリの問題、マルウェアが含まれます。トラブルシューティングには、SFCスキャン、ドライバーUpdaが含まれます

See all articles