2010-01-01 12 views
10

Aşağıdaki C++ kodunun Java karşılığı nedir? Kod başarıyla çalışıyorsa
Bir floatın bitlerini bir int olarak nasıl yeniden yorumlanır

float f=12.5f; 
int& i = reinterpret_cast<int&>(f); 
+0


Kontrol ettiniz ?? 'int & i = r_c (f) ' – SuperSaiyan

+3

olmalıdır. Bu herhangi bir dile gerçekten çevrilemez. Kayan nokta bitlerini bir int olarak yorumluyor !!! Bu ne anlama geliyor? Kayan nokta temsili standart tarafından tanımlanmadığı için, derleyici/donanımınız tarafından hangi kayan nokta temsilinin kullanıldığını anlarsanız ve bunun Java kayan nokta temsiliyle eşleştiğini anlamanız yeterlidir. –

+3

Martin York'un söylediğine ek olarak, teknik olarak referanstan int referansa kadar * uygulama tanımlı bir eşleme * gerçekleştiriyor. Kesin olarak, sonuçtaki int başvurusunun aynı nesneyi taklit edeceğine dair bir garanti yoktur. – jalf

cevap

24
float f = 12.5f; 
int i = Float.floatToIntBits(f); 
+1

+1 ........... :) –

+1

Merak ettiğin şey, ne yazdığın ile int i = (int) f arasındaki fark nedir? –

+3

@Montecristo: (int) f, Java, C++ 'da static_cast (f) gibidir. – missingfaktor

İlgili konular