Bir ondalık sayıyı taban2'ye dönüştürmek için aşağıdaki kodu yazdım. muhtemelen en iyi değil, ama tutulma üzerinde çalıştı. Ancak, görsel stüdyosunda çalıştırmayı denediğimde, bu hata iletisini satır 10 (vurgulanan): "ifade bir sabit olarak değerlendirilmedi". Neden?ifadesi, bir sabit + için değerlendirilmedi ++
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;
}