2013-01-12 10 views
5

Nie jestem pewien, jak to przetłumaczyć z C++ na Javę. Jest to funkcja obliczająca masę Hamminga.Obliczanie masy Hamminga, zwanej także popcount w Javie?

/** This is popcount_3() from: 
* http://en.wikipedia.org/wiki/Hamming_weight */ 
unsigned int popcnt32(uint32_t n) const 
{ 
    n -= ((n >> 1) & 0x55555555); 
    n = (n & 0x33333333) + ((n >> 2) & 0x33333333); 
    return (((n + (n >> 4))& 0xF0F0F0F)* 0x1010101) >> 24; 
} 

Bardziej konkretnie, nie wiem, co używać zamiast uint32_t, i jeśli mogę użyć tego rodzaju bez względu na to, czy mogę zostawić resztę kodu niezmieniony?

Dzięki

+2

Czy spróbować? –

+0

Po pierwsze, nie ma odpowiednika 'uint32_t' w Javie, musiałbyś użyć' long'. – fge

+0

Oli dobrze, nie jestem pewien, co naprawdę spróbować. Wygląda na to, że wiele rzeczy może pójść nie tak. – user1796942

Odpowiedz

18

Jest realizowany na ciebie w Integer.bitCount(int i)

Powiązane problemy