色色一区二区三区,一本大道道久久九九AV综合,国产香蕉97碰碰视频va碰碰看,综合亚洲国产2020

    <legend id="mljv4"><u id="mljv4"><blockquote id="mljv4"></blockquote></u></legend>

    <sub id="mljv4"><ol id="mljv4"><abbr id="mljv4"></abbr></ol></sub>
      <mark id="mljv4"></mark>

      Java放棄了可移植浮點(diǎn)的哪方面?

      2021-02-28 18:20

      Java是以“編寫一次,隨處運(yùn)行”為口號發(fā)布的;而它的采用可能更多的是為了“現(xiàn)在我們有了一種語言,可以在熟悉的工作流中提供垃圾收集,并具有良好的標(biāo)準(zhǔn)庫”,

      解答動態(tài)

      • 中間結(jié)果的范圍。
        Java語言規(guī)范,第2版。通過引入“FP strict”表達(dá)式的概念,放寬了浮點(diǎn)表達(dá)式的求值規(guī)則,定義如下(§15.4,p.319):
        在FP strict表達(dá)式中,所有中間值必須是浮點(diǎn)值集或雙值集的元素,這意味著所有FP strict表達(dá)式的結(jié)果必須是ieee754算術(shù)對使用單格式和雙格式表示的操作數(shù)所預(yù)測的結(jié)果。在非FP嚴(yán)格的表達(dá)式中,允許實現(xiàn)使用擴(kuò)展的指數(shù)范圍來表示中間結(jié)果;粗略地說,凈效果,在單獨(dú)使用浮點(diǎn)值集或雙值集可能導(dǎo)致溢出或下溢的情況下,計算可能會產(chǎn)生“正確答案”。
        實際語義在§5.1.8“值集轉(zhuǎn)換”中有詳細(xì)說明;這兩個部分將在其他部分中引用,這些部分指定規(guī)范所考慮的“中間”浮點(diǎn)結(jié)果(基本上歸結(jié)為所有算術(shù)運(yùn)算,但不是變量賦值或參數(shù)傳遞)。
        fp strict模式可以通過strictfp關(guān)鍵字啟用,該關(guān)鍵字可以應(yīng)用于類(JLS第2版,§8.1.1.3)、方法(§8.4.3.5)和接口(§9.1.1.2)。
        此定義在Java 15中一直保持不變(分別為JLS 15、§15.4和§5.1.13)。在第一版中,沒有這樣的“嚴(yán)格性”概念,因此所有浮點(diǎn)表達(dá)式都是隱式嚴(yán)格的。
        這與C語言的問題基本相同(參見GCC臭名昭著的bug 323和GCC手冊中的“失望”部分);盡管在Java中,由于規(guī)范只允許JVM實現(xiàn)擴(kuò)展指數(shù)范圍,并要求在變量賦值(JLS第2版§5.2)和參數(shù)傳遞(§5.3)時嚴(yán)格將值四舍五入到它們的標(biāo)稱類型,因此這一點(diǎn)的影響要小得多。
        @超級跑車他的回答更詳細(xì)地說明了動機(jī);這也讓我意識到我對規(guī)范有點(diǎn)誤讀。

        • 據(jù)我所知,除非情況有所改變,否則我認(rèn)為即使在非嚴(yán)格模式下,Java也要求浮點(diǎn)值在尾數(shù)中舍入到適當(dāng)?shù)拈L度。但是,允許留有余地,其值小于最小標(biāo)準(zhǔn)化浮點(diǎn)值。大多數(shù)浮點(diǎn)值應(yīng)具有24位精度,但幅度在最小標(biāo)準(zhǔn)化值的0.5到1.0倍之間的值應(yīng)具有23位,幅度在最小標(biāo)準(zhǔn)化值的0.25到0.5倍之間的值應(yīng)具有22位,等等。許多硬件平臺都有將尾數(shù)快速舍入到24位的方法,但是除了將一個值以浮點(diǎn)形式存儲到內(nèi)存中,然后將其讀回外,無法有效地強(qiáng)制進(jìn)行與大小相關(guān)的舍入。
          如果語言提供不同的浮點(diǎn)類型,這些浮點(diǎn)類型具有匹配的表示形式,但語義不同,那么圍繞這些問題的許多爭議是可以避免的,以及一種指定哪個特定類型應(yīng)該由float或double等關(guān)鍵字表示的方法。如果希望通用實現(xiàn)提供顯式選擇語言默認(rèn)行為的模式,以及使用最有效行為的模式,然后,希望編寫在各種平臺上高效但正確運(yùn)行的代碼的人可以使用在他們的平臺上運(yùn)行效率更高的模式和在他們的平臺上運(yùn)行效率更低但會模仿其他平臺行為的模式來測試他們的代碼。不幸的是,盡管不同的行為對于不同的平臺和目的更有用,但通常的趨勢是試圖推動所有實現(xiàn)以相同的方式處理所有事情。

          • End

          免責(zé)聲明:

          本頁內(nèi)容僅代表作者本人意見,若因此產(chǎn)生任何糾紛由作者本人負(fù)責(zé),概與琴島網(wǎng)公司無關(guān)。本頁內(nèi)容僅供參考,請您根據(jù)自身實際情況謹(jǐn)慎操作。尤其涉及您或第三方利益等事項,請咨詢專業(yè)人士處理。