ok ... логика ... Я передаю целочисленную переменную, имеющую двоичное число ... скажем, (11010101), которое равно 213 в десятичном разряде ....Я пытаюсь преобразовать двоичный код в десятичный
функция найдет число цифр двоичного числа, которое равно 8. Затем он будет запускать цикл, который много раз .. тогда, если k-я цифра этого двоичного числа равна 1, тогда она добавит 2^k к переменной ans, если k-я цифра двоичного числа равна 0 ... Я просто пропущу его.
так 1 = 128 1 = 64 0 = 0 1 = 16 0 = 0 1 = 4 0 = 0 1 = 1 - ----- ------
Thats логика .... но когда я запускаю его ... Я продолжаю получать ответ как 0 ... Может ли ребята помочь мне?
Так вот код ..
int toDecimal(int number,int base){
if (base==2) {
int i, n=number, dec=0, d1, d=0;
while(n!=0){
n=n/10;
++d;
}
d1=d;
for(i=0;i<d;i++){
if(n%10==1){
dec+=pow(2,--d1);
n=n/10;
}
else{
--d1;
n=n/10;
}
}
return dec;
}
return 0;
}
Общая рекомендация: Более длинные имена переменных не стоят дороже. Намного легче понять, что говорит 'number_of_digits', чем понимать, что означает' d'. –
вам нужно сбросить 'n' после нахождения числа цифр. – mch
@sharath gr8 ... точка взята .. спасибо за подсказку :) .... так и нашел, почему я продолжаю получать 0 ?? –