कम

2011-08-10 10 views
6

पर बिटवाई ऑपरेशंस मैं डीडीएस नामक एक तकनीक का उपयोग कर रहा हूं और आईडीएल में, यह int का समर्थन नहीं करता है। तो, मुझे लगा कि मैं सिर्फ short का उपयोग करूंगा। मुझे उस बिट्स की ज़रूरत नहीं है। हालांकि, जब मैं ऐसा करता हूं:कम

short bit = 0; 
System.out.println(bit); 
bit = bit | 0x00000001; 
System.out.println(bit); 
bit = bit & ~0x00000001; 
bit = bit | 0x00000002; 
System.out.println(bit); 

यह कहता है "टाइप मिस्चैच: int से छोटा में परिवर्तित नहीं हो सकता"। जब मैं short से long बदलता हूं, तो यह ठीक काम करता है।

क्या जावा में short पर इस तरह के bitwise संचालन करना संभव है?

उत्तर

8

जब byte, short, या char पर किसी भी गणित कर रही है, संख्या व्यापक प्रकार int करने के लिए प्रोत्साहित कर रहे हैं। अपनी समस्या को हल करने के लिए, स्पष्ट रूप से short वापस करने के लिए परिणाम डाली:

bit = (short)(bit | 0x00000001); 

लिंक:

+0

यह था, धन्यवाद। –

1

मेरे समझ क्या जावा छोटे शाब्दिक मूल्यों का समर्थन नहीं करता है। लेकिन यह मेरे लिए काम किया:

short bit = 0; 
short one = 1; 
short two = 2; 
short other = (short)~one; 
System.out.println(bit); 
bit |= one; 
System.out.println(bit); 
bit &= other; 
bit |= two; 
System.out.println(bit); 
संबंधित मुद्दे