SORU
7 Aralık 2008, Pazar


Ne 1.#İNF00, -1.#-1. İND00#IND?

Bazı C kodu ile yüzer kullanarak düşünsen ben alıyorum 1.#İNF00, -1.#-1. İND00#Yazdırmaya çalıştığımda IND ekranda yüzer. Bu değerler ne anlama geliyor? 1. ben inanıyorum ki#Pozitif sonsuz, ama -1. ne İNF00 demektir#-1. İND00#IND? Ben de bazen bu değeri gördüm: 1.$Bir Numarası Değil, ama bu garip değerler neden ve nasıl bu hata ayıklama yardımcı olur NaN?

Şamandıra puan için IEEE 754 gösterimi kullanır inandığım MingW kullanıyorum.

Biri, yani tüm bu geçersiz değerler listesi olabilir?

CEVAP
7 Aralık 2008, Pazar


IEEE floating-point exceptions in C :

Bu sayfada aşağıdaki sorulara cevap verecektir.

  • Benim program sadece 1. baskılı#Ya da 1. IND#INF (Windows) veya nan veya ınf (Linux üzerinde). Ne oldu?
  • Nasıl bir numara gerçekten bir numara ve bir NaN veya infinity değilse söyleyebilir miyim?
  • Nasıl NaNs ve sonsuz çeşitleri hakkında zamanında daha fazla bilgi bulabilirim?
  • Bu işlerin nasıl yürüdüğünü göstermek için herhangi bir örnek kod var mı?
  • Nereden daha fazla bilgi edinebilirim?

Bu soruları kayan nokta özel bir ilgisi var. Eğer bir sayı bekliyorsunuz nereye sayısal olmayan garip bir çıkış varsa, ya da kayan nokta aritmetik sonlu sınırları aştınız ya da tanımsız bir sonuç için sordun. Şeyleri basit tutmak için, çift kayan nokta türü ile çalışmaya devam edeceğim. Benzer sözler şamandıra türleri için basılı tutun.

1. hata ayıklama#, 1. IND#INF, nan, ve ınf

Eğer operasyonunuz bir çift kayıtlı olabilir daha büyük pozitif bir sayı üretecek, işlem 1. döner#INF, Windows veya Linux üzerinde ınf. Kodunuzu -1. döndürür benzer#INF veya eğer sonuç negatif bir sayı bir çift depolamak için çok büyük olurdu-ınf. Sıfır pozitif bir sayı bölen pozitif bir sonsuzluk üretir ve sıfır negatif bir sayı bölen negatif sonsuz üretir. Bu sayfanın sonunda örnek kod sonsuz üreten bazı işlemleri gösterecektir.

Bazı işlemler matematiksel anlamda, negatif bir sayının karekökünü almak gibi yapma. (Evet, bu işlem karmaşık sayılar bağlamında mantıklı, ama bir çift gerçek bir sayıyı temsil eder ve sonucu göstermek için hiçbir çift yoktur.) Aynı negatif sayılar logaritma için geçerlidir. Karekök(-1.0) ve günlük(-1.0) hem de bir NaN, genel bir terim için iade ediyorum "sayı" yani "bir numara". Bir NaN -1. Windows görüntüler#("IND""") belirsiz Linux görüntüler nan. süre IND Bir NaN dönecekti diğer işlemleri 0/0, 0* bi * * * * ve bi * * * * / bi * * * * vardır. Örnek için aşağıdaki örnek kod bakın.

Eğer alırsanız kısa, 1.#INF veya ınf, sıfır taşma veya bölüm arayın. 1. Eğer#IND ya nan, yasadışı faaliyetleri için bak. Belki de sadece bir hata var. Daha ince ve hesaplamak için zor bir şey varsa, Taşma, Yetersizlik ve duyarlılık Kaybı Kaçınarak bakın. Bu makalede Ara adımları sonuçlar bilgisayar için hileler eğer doğrudan hesaplanan taşmasına verir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ArkticPlanet

    ArkticPlanet

    9 ŞUBAT 2010
  • Keith Anthe

    Keith Anthe

    26 NİSAN 2011
  • MrOctopi

    MrOctopi

    6 Aralık 2010

İLGİLİ SORU / CEVAPLAR