[ velkod @ 24.10.2004. 17:06 ] @
Sutra imam ispit iz c++ pa mi je potreban primer iz konverzije brojeva iz recimo binarnog u dekadni. Takodje su mi potrebne i ostale kombinacije. Znam kako ide konverzija odprilike ali mnogo bi mi pomoglo da vidim konkretno kako treba da izgleda u c++. Pozdrav.
[ Ivan Dimkovic @ 24.10.2004. 17:23 ] @
Ne znam sta hoces konkretno da radis - ako se radi o konzolnom upitu, onda iz binarnog u dekadni mozes da uradis konverziju vrlo prosto:

Code:

int konvertuj_me(char *binarni_broj, int duzina) {

  int broj=0, n;

  for(n=0;n<duzina;n++) {
    broj += (binarni_broj[n]=='1') ? (1<<(duzina-n-1)) : 0;
  }
  return broj;
}
[ blaza @ 24.10.2004. 19:48 ] @
Zapis binarnog broja: char binarni_broj[33];
Svaki bit zauzima jedan karakter; '0' je 0; '1' je 1; bilo koji drugi karakter oznacava kraj; MSB se pamti u karakteru sa indeksom 0
Broj moze imati maksimalno 32 znacajne cifre
Code:

unsigned int bin_u_dek(char* bb){
    unsigned int j, rezultat = 0, i = 0;
    for(; !(((j = (bb[i] ^ 0x30)) & 0xfe)  || (i & 0x20)); i++)
        rezultat += rezultat + j;
    return rezultat;
}

char* dek_u_bin(unsigned int b){
    unsigned int i, j = 31, k;
    for(; b < (1 << j); j--);
    static char rezultat[33];
    for(i = ++j; j; j--){
        if(k = (b >= 1 << (j - 1)))
            b -= 1 << (j - 1);
        rezultat[i - j] = 48 + ((k) ? 1 : 0);
    }
    rezultat[i] = 0;
    return rezultat;   
}