2013-01-12 28 views
5

मुझे यकीन नहीं है कि इसे सी ++ से जावा में कैसे अनुवादित किया जाए। यह एक ऐसा कार्य है जो हैमिंग वजन की गणना करता है।कंप्यूटिंग हैमिंग वजन, जिसे जावा में पॉपकाउंट भी कहा जाता है?

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

अधिक वस्तुतः, मैं क्या uint32_t के बजाय का उपयोग करने के पता नहीं है, और यदि मैं उस प्रकार का उपयोग करें जो कुछ भी हो, मैं सिर्फ आराम कोड अपरिवर्तित छोड़ कर सकते हैं?

धन्यवाद

+2

आप इसे कोशिश की में आप के लिए लागू किया गया है? –

+0

एक के लिए, जावा में 'uint32_t' के बराबर नहीं है, आपको 'long' का उपयोग करना होगा। – fge

+0

ओली अच्छी तरह से मुझे यकीन नहीं है कि वास्तव में क्या प्रयास करना है। ऐसा लगता है कि इतनी सारी चीज़ें गलत हो सकती हैं। – user1796942

उत्तर