SORU
6 Temmuz 2009, PAZARTESİ


Neden't ondalık sayılar ikili düzende tam olarak gösterilebilir?

Birkaç soru kayan nokta hakkında temsili için yayınlanmıştır. Örneğin, ondalık sayı 0.1 tehlikeli == operatörü kayan noktalı bir sayı karşılaştırmak için kullanın, bu yüzden tam bir ikili gösterimi yok. Kayan nokta gösterimi arkasında ilkelerini anlıyorum.

Neden olduğunu anlamadığım şey, matematiksel bir bakış açısıyla, ondalık noktası artık" sol olanlar mı? "özel sağındaki sayılar

Örneğin, bir sayı 61.0 herhangi bir sayı ayrılmaz bir bölümü her zaman tam olduğundan tam bir ikili gösterimi var. Ama sayı 6.10, tam değildir. Tek yaptığım Exactopia gelen İnexactville için gittim ondalık bir yere taşımak ve aniden oldu. Matematiksel olarak, onlar sadece sayılar iki sayı arasındaki içsel fark olmalı.

Eğer diğer yönde bir yer ondalık sayı üretmek için ise tam tersine, 610, ben hala Exactopia içinde. Bu yönde devam edebilirim (6100, 610000000, 610000000000000) ve hala kesin, kesin, kesin geliyorlar. Ama ondalık bazı eşiği geçtikten sonra, bu numaraları artık kesin.

Neler oluyor?

Edıt: açıklığa kavuşturmak için, tartışma, endüstri standardı temsil, IEEE gibi, uzak dur ve matematiksel olarak"". saf olduğuna inandığım şey ile sopa istiyorum Base 10, konumsal değerleri:

... 1000  100   10    1   1/10  1/100 ...

İkili, olacaktır:

... 8    4    2    1    1/2  1/4  1/8 ...

Ayrıca keyfi sınırlar bu numaraları yer yok. Pozisyonları süresiz olarak sağa sola ve artırmak.

CEVAP
6 Temmuz 2009, PAZARTESİ


Ondalık sayılarolabilireğer yeterli alan varsa tam olarak temsil edilmesi - sadece yüzerikilinokta numaraları. Bir kayan kullanırsanızondalıkpuan türü (*4 örneğin*.NET) o zaman tam ikili kayan nokta olarak temsil edilebilir mi, hangi değerleri bol tam olarak temsil edilebilir.

Hadi bir de şu açıdan bak - rahat olma olasılığının yüksek olan 10 tabanı, 1/3 tam olarak ifade edemiyorsun. 0.3333333... (yinelenen). İkili kayan noktalı sayı olarak 0.1 temsil edemezsiniz nedeni tam olarak aynı sebepten. 3, 9 ve 27 tam olarak - ama 1/3, 1/9 veya 1/27 ifade ediyor.

Sorun 3 10 kat değil asal sayıdır. Bunun için istediğiniz zaman bir sorun değilçarpın3 numara: her zaman sorun olmadan çalışan bir tam sayı ile çarpın. Ama ne zamanbölBaşbakan ve temel bir faktör değil bir yorum, sıkıntı içine çalıştırabilirsiniz (veeğer bu sayı) 1 bölmeye çalışırsanız, bunu yapmak.

Ancak 0.1 genellikle kullanılan en basit örnek tam bir ondalık sayı edilemez temsil tam olarak ikili kayan nokta, tartışmasız 0.2 basit bir örnek olarak 1/5 - 5 Başbakan neden olan sorunlar arasında ondalık ve ikili.

< / ^ hr .

Yan sonlu gösterimleri: bu sorunla başa çıkmak için unutmayın

Bazı kayan ondalık noktası türlerine sahip bir sabit boyutlu gibi System.Decimal diğerleri gibi java.math.BigDecimal "keyfi büyük" - ama hit bir sınırı bir noktada, ister sistem bellek ya da teorik olarak maksimum boyut dizisi. Bu cevap ana için tamamen ayrı bir nokta daha var. Eğer oynamak için bit keyfi gerçekten büyük bir sayı olsaydı bile, yine de tam olarak ikili kayan nokta gösterimi ondalık 0.1 temsil edemedi. Diğer yol yuvarlak karşılaştırın: ondalık basamak, rastgele bir numara verilirolabilirkesinlikle ikili kayan nokta olarak temsil edilebilir olan herhangi bir sayıyı temsil eder.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Autocar

    Autocar

    11 Mart 2006
  • Nightmare2005

    Nightmare200

    14 Ocak 2007
  • TouchePro

    TouchePro

    27 EYLÜL 2007