दिलचस्प पोस्ट
संदर्भ मेनू के तहत नोड खोजें क्लिक करें विज्ञापन ऐप फ़्रेमवर्क का उपयोग करने के लिए मेरा ऐप अभी अस्वीकार कर दिया गया था कौन सा पुस्तकालय जिम्मेदार है? html5 का उपयोग करते हुए विखंडू में एक फ़ाइल अपलोड करना आदिम डेटा प्रकारों का आकार कोई एक्जीक्यूटेबल मेलिंग कमांड "dotnet-ef" नहीं मिला C ++ प्रोग्राम में एकाधिक .cpp फ़ाइलों का उपयोग करना? तस्वीरों के रूप में चित्रों को या वेब ऐप के लिए डेटाबेस में स्टोर करें? मैं कैसे एक डेटा नियंत्रक से दूसरे नियंत्रक के पास भेज सकता हूं निर्दिष्ट बच्चे के पास पहले से ही माता-पिता थे। आपको पहले बच्चे के माता-पिता पर removeView () को कॉल करना होगा "अनअसाइन किए गए स्थानीय चर का उपयोग" क्या मतलब है? अखंडता और क्रॉसोर्गीन विशेषता क्या हैं? क्या कोई रास्ता है जब जेबीस कनेक्शन पूल ओरेकल से फिर से कनेक्ट हो जाता है जब कनेक्शन खराब हो जाते हैं? event.preventDefault () बनाम वापसी झूठी वायदा के लिए एक ठीक ट्यूनेड थ्रेड पूल को कॉन्फ़िगर कैसे करें? सीएसएस चयनकर्ता में वर्ग और पहचान कैसे करें?

हस्ताक्षरित पूर्णांक को एक अहस्ताक्षरित लंबे समय तक परिवर्तित करने का सर्वोत्तम तरीका?

जावा में कुछ हैश फ़ंक्शन के लिए यह एक अहस्ताक्षरित पूर्णांक के रूप में मान को देखने के लिए अच्छा होगा (उदाहरण के लिए अन्य कार्यान्वयन की तुलना के लिए) लेकिन जावा केवल हस्ताक्षरित प्रकार का समर्थन करता है हम हस्ताक्षरित int को "अहस्ताक्षरित" long परिवर्तित कर सकते हैं जैसे:

 public static final int BITS_PER_BYTE = 8; public static long getUnsignedInt(int x) { ByteBuffer buf = ByteBuffer.allocate(Long.SIZE / BITS_PER_BYTE); buf.putInt(Integer.SIZE / BITS_PER_BYTE, x); return buf.getLong(0); } getUnsignedInt(-1); // => 4294967295 

हालांकि, यह समाधान हम वास्तव में क्या कर रहे हैं, इसके लिए अतिरेक की तरह लगता है। क्या एक ही चीज़ हासिल करने के लिए एक अधिक कुशल तरीका है?

Solutions Collecting From Web of "हस्ताक्षरित पूर्णांक को एक अहस्ताक्षरित लंबे समय तक परिवर्तित करने का सर्वोत्तम तरीका?"

कुछ इस तरह?

 int x = -1; long y = x & 0x00000000ffffffffL; 

या क्या मैं कुछ न कुछ भूल रहा हूं?

 public static long getUnsignedInt(int x) { return x & 0x00000000ffffffffL; } 

जावा 8 में मानक तरीका Integer.toUnsignedLong(someInt) , जो @ माइस्टिकियल के जवाब के बराबर है।

अमरूद UnsignedInts.toLong(int) प्रदान करता है … और साथ ही अन्य प्रकार की अन्य उपयोगिताएं अहस्ताक्षरित पूर्णांक पर।

आप जैसे फ़ंक्शन का उपयोग कर सकते हैं

 public static long getUnsignedInt(int x) { return x & (-1L >>> 32); } 

हालांकि अधिकांश मामलों में आपको ऐसा करने की आवश्यकता नहीं है। आप इसके बजाय वर्कअराउंड का उपयोग कर सकते हैं। जैसे

 public static boolean unsignedEquals(int a, int b) { return a == b; } 

अहस्ताक्षरित मूल्यों का उपयोग करने के लिए कार्यक्षेत्र के अधिक उदाहरणों के लिए अनावृत उपयोगिता वर्ग

अन्य समाधान

 public static long getUnsignedInt(int x) { if(x > 0) return x; long res = (long)(Math.pow(2, 32)) + x; return res; } 

सिर्फ मेरे 2 सेंट यहां हैं, लेकिन मुझे लगता है कि इसका उपयोग करने के लिए एक अच्छा अभ्यास है:

public static long getUnsignedInt(int x) { return x & (~0L); // ~ has precedence over & so no real need for brackets }

के बजाय:

वापसी x & 0xFFFFFFFFL;

इस स्थिति में आपकी चिंता नहीं है कि कितने 'एफ का मुखौटा है यह हमेशा काम करेगा!

 long abs(int num){ return num < 0 ? num * -1 : num; }