2013-01-12 4 views
5

Ich bin mir nicht sicher, wie man das von C++ nach Java übersetzt. Es ist eine Funktion, die das Hamming-Gewicht berechnet.Computing Hamming Gewicht, auch als Popcount in Java?

/** 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; 
} 

Konkreter, ich weiß nicht, was statt uint32_t zu verwenden, und wenn ich diese Art verwenden, was auch immer es ist, kann ich nur verlassen den Rest Code unverändert?

Dank

+2

Sie versuchen es getan hat? –

+0

Zum einen gibt es in Java kein Äquivalent von "uint32_t", man müsste 'long' verwenden. – fge

+0

Oli ich bin mir nicht sicher, was ich wirklich versuchen soll. Es scheint so, als könnten so viele Dinge schief gehen. – user1796942

Antwort

18

es für Sie in Integer.bitCount(int i)

implementiert ist