के बिट पैटर्न मैं जावा के लिए एक सी ++ प्रोग्राम परिवर्तित कर रहा हूँ और पूरी तरह से निम्न विधि जो मेरे मन विस्फोट से उड़ा दिया में अटक गई। क्या आप यह समझाने के लिए बहुत दयालु होंगे कि यह विधि क्या कर रही है?परिवर्तित सी ++ जावा
long TSBCA::GetSignedValue(const NDataString &value)
{
static NDataString s;
s = value;
long multiplier(1);
size_t len(s.Len());
if (len != 0)
{
if (s[0] >= (char)0xB0 && s[0] <= (char)0xB9)
{
s[0] &= 0x7F; //Bit Pattern: 0111 1111
multiplier = -1;
}
else if (s[len - 1] >= (char)0xB0 && s[len - 1] <= (char)0xB9)
{
s[len - 1] &= 0x7F; //Bit Pattern: 0111 1111
multiplier = -1;
}
else
multiplier = 1;
}
else
multiplier = 1;
return s.ToLong() * multiplier;
}
संपादित करें:
मेरे प्रारंभिक जावा संस्करण:
private long getSignedValue(final String value){
byte[] bytes = value.getBytes();
int length = bytes.length;
long multiplier = 1L;
if (bytes.length > 0){
if (bytes[0] >= (char)0xB0 && bytes[0] <= (char)0xB9){
bytes[0] &= 0x7F; //Bit Pattern: 0111 1111
multiplier = -1;
}
else if (bytes[length - 1] >= (char)0xB0 && bytes[length - 1] <= (char)0xB9)
{
bytes[length - 1] &= 0x7F; //Bit Pattern: 0111 1111
multiplier = -1;
}
else
multiplier = 1;
}
else
multiplier = 1;
return Long.parseLong(Arrays.toString(bytes))* multiplier;
}
मैं इसे सही किया?
NDataString? क्या वह उद्देश्य सी नहीं है? –
क्या आप अपनी कंपनी के कोड को ऑनलाइन पोस्ट करने की बजाय समस्या को अलग करना नहीं चाहते हैं? –
बीटीडब्लू, अगर यह आपके दिमाग को उड़ा देता है क्योंकि यह जटिल और जटिल लगता है, अच्छा! मैं इसे अच्छे, स्पष्ट कोड का उदाहरण नहीं कहूंगा। –