मैंने दशमलव संख्या को बेस 2 में परिवर्तित करने के लिए निम्न कोड लिखा था। शायद सबसे अच्छा नहीं है, लेकिन यह ग्रहण पर काम किया। हालांकि, जब मैं इसे विजुअल स्टूडियो पर चलाने की कोशिश करता हूं, तो मुझे यह त्रुटि संदेश लाइन 10 (जोर दिया जाता है) पर मिलता है: "अभिव्यक्ति निरंतर मूल्यांकन नहीं करती"। वह क्यों है?अभिव्यक्ति का निरंतर मूल्यांकन नहीं किया गया- C++
long base2(int number) {
int remainder, sizeOfRetNum, isNegative = 0;
if (number<0)
isNegative = 1;
int temp = number;
while (temp != 0) {
sizeOfRetNum++;
temp = temp/2;
}
char ansString[sizeOfRetNum]; // ********line 10********
int j = sizeOfRetNum - 1;
while (number != 0) {
remainder = number % 2;
number = number/2;
if (remainder == 0)
ansString[j] = '0';
else
ansString[j] = '1';
j--;
}
long ansNum = atol(ansString);
if (isNegative == 1)
ansNum = -ansNum;
return ansNum;
}