2011-11-18 12 views
6

स्रोत कोड में निरंतर उपयोग किए जाने वाले प्रकार के प्रकार को इंगित करने के लिए पोस्टफिक्स डिलीमीटर का उपयोग करना आवश्यक है, जैसे कि लंबे समय तक एल। हालांकि, शॉर्ट्स के लिए और बाइट्स कोई परिसीमक हैं, तो मैं स्पष्ट रूप से ऐसा तरह निरंतर मूल्य कास्ट करने के लिए की जरूरत है:जावा पोस्टफिक्स delimiters

short x = (short)0x8000; 

मैं सोच रहा था अगर जावा संकलित बाईटकोड में अतिरिक्त कदम उठा लेता वास्तव में एक पूर्णांक प्रकार से इस कन्वर्ट करने के लिए संक्षेप में, या क्या यह पता है कि यह एक शब्द में फिट होगा और निरंतर उपयोग करेगा? अन्यथा, क्या कोई तरीका है कि मैं छोटी या बाइट को इंगित करने के लिए इन तरह की संख्याओं को पोस्टफिक्स कर सकता हूं?

+0

बाहर चेक http://stackoverflow.com/questions/2720738/java-short-and-casting - अगर मदद करता है !! – Nik

उत्तर

5

मैं सोच रहा था कि क्या जावा संकलित बाइटकोड में वास्तव में एक पूर्णांक प्रकार से इसे छोटा करने के लिए अतिरिक्त कदम उठाता है, या क्या यह पता है कि यह एक शब्द में फिट होगा और निरंतर उपयोग करेगा?

मुझे लगता है कि यह जानता है कि यह एक शब्द में फिट होगा और इसका उपयोग करेगा। के लिए उदाहरण के बाईटकोड के लिए:

public class IntToShortByteCode { 
    public static void main(String... args){ 
     short x = (short)0x8888; 
     System.out.println(x); 
    } 
} 

(javac 1.6.0_14) है:

Compiled from "IntToShortByteCode.java" 
public class IntToShortByteCode extends java.lang.Object{ 
public IntToShortByteCode(); 
    Code: 
    0: aload_0 
    1: invokespecial #1; //Method java/lang/Object."<init>":()V 
    4: return 

public static void main(java.lang.String[]); 
    Code: 
    0: sipush -30584 
    3: istore_1 
    4: getstatic  #2; //Field java/lang/System.out:Ljava/io/PrintStream; 
    7: iload_1 
    8: invokevirtual #3; //Method java/io/PrintStream.println:(I)V 
    11: return 

} 

अन्यथा, वहाँ एक तरह से मैं इस तरह की संख्या पोस्टफिक्स छोटी या बाइट निरूपित करने के लिए कर सकते हैं?

सं

संबंधित मुद्दे