giggikr
07-12-2009, 17:57
ciao ragazzi...ho un problemone..che dovrei risolvere entro stasera alle 23.59 (tempo massimo di invio al mio prof) xD
ho creato delle funzioni per un programma pią ampio..ma ho notato che quelle che servono a convertire un numero in base dieci in un altra base definita nel define come K...dą errore con numeri superiori a 1023 per esempio(considerando in base2)...
notate qualche errore??
#include <stdio.h>
#include <stdlib.h>
#define K 2
unsigned long int cambiabase(unsigned long int n);
unsigned long int contacifre(unsigned long int n);
unsigned long int potenzadidieci(unsigned long int n);
int main(){
unsigned long int c = 0,a;
c = cambiabase(1024);
printf("%ld",c);
return 0;
}
unsigned long int contacifre (unsigned long int n){
unsigned long int p=1;
while( n > 10){
n /= 10;
p++;
}
return p;
}
unsigned long int cambiabase (unsigned long int n){
unsigned long int h = 0, sum = 0;
for( h = 0 ; n > 0 ; h++){
sum = sum + (n%K)*potenzadidieci(h);
n = n/K;
}
return sum;
}
unsigned long int potenzadidieci(unsigned long int n) { // POW in math.h non mi accettava variabili
unsigned long int i, m=1;
for ( i = 0; i < n; i++ )
m = m*10;
return m;
}
ho creato delle funzioni per un programma pią ampio..ma ho notato che quelle che servono a convertire un numero in base dieci in un altra base definita nel define come K...dą errore con numeri superiori a 1023 per esempio(considerando in base2)...
notate qualche errore??
#include <stdio.h>
#include <stdlib.h>
#define K 2
unsigned long int cambiabase(unsigned long int n);
unsigned long int contacifre(unsigned long int n);
unsigned long int potenzadidieci(unsigned long int n);
int main(){
unsigned long int c = 0,a;
c = cambiabase(1024);
printf("%ld",c);
return 0;
}
unsigned long int contacifre (unsigned long int n){
unsigned long int p=1;
while( n > 10){
n /= 10;
p++;
}
return p;
}
unsigned long int cambiabase (unsigned long int n){
unsigned long int h = 0, sum = 0;
for( h = 0 ; n > 0 ; h++){
sum = sum + (n%K)*potenzadidieci(h);
n = n/K;
}
return sum;
}
unsigned long int potenzadidieci(unsigned long int n) { // POW in math.h non mi accettava variabili
unsigned long int i, m=1;
for ( i = 0; i < n; i++ )
m = m*10;
return m;
}