欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3200|回復: 0
收起左側

如何檢查實數值是相等的?【算法】

[復制鏈接]
ID:26188 發表于 2015-5-28 01:53 | 顯示全部樓層 |閱讀模式
描述:

對實數進行計算時,由于實數的結構 (指數形式) 以及非常大的數值范圍,經常會發生舍入誤差,因此兩個數值相等的情況 (所有位都相同) 幾乎不會出現。所以比較兩個實數是否“相等”通常難以獲得預期的結果。因此您必須采用其它的方法。其中一種方法是采用近似值的方法。本條目介紹了一種您可以據以判斷實數是否“相等”的近似值算法,還包含了一個應用該近似值算法的實例。本條目還簡要介紹了實數的格式。
比較實數值是否相等的近似值
此處所述的比較實數所用的近似值基于以下公式:
|(a -b)/(|a| + |b|)| < eps
該近似值可用語言表述如下:
當 a 和 b 之差與 a 和 b 的絕對值之和的比值的絕對值小于“eps”的值時,2 個數值“a”和“b”即被視為相等。
其中需要考慮公式的下列屬性:
1. 如果實數“a”和“b”的值非常大,則即使它們相差比較大也被視為等值,此時必須根據系統的需求降低“eps”的值。
如果實數“a”和“b”的值非常小,則只有兩數值相差很小時才被視為等值。
注意事項:
此處請注意在一個實數的尾數中,最多只能顯示 6 個連續的十六進制數字。
例如
數值舉例 1
數值舉例 2
(|a| + |b|)
5
5000000
“eps”
10-6 [0.000001]
“a”和“b”可被視為相等時“a”和“b”的差值
0.00000499...
4.999...
表 01
2. 如果“a”和“b”兩值都為 0,則“a”和“b”的和也是 0。被 0 除是不允許的且會導致錯誤結果。因此不能使用近似值比較兩個恰好都為 0 的實數“a”和“b”!
3. 如果兩個被比較的實數有一個是 0,那么也不使用這個公式計算近似值。近似值結果通常為 1。因此比較結果常常是“不相等”,除非“eps”被設定比 1 大。
注意事項:
  • 如果已經發生了被 0 除的操作,則 CPU 通過置位狀態位 OS、OV、A0 和 A1 來指示這一錯誤。
  • 如果數學函數的結果為 0,則兩個狀態位 A0 和 A1 不置位。


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表