primjer:
9 = 1001 izimam zadnje 2 cifre to jest 01 i pretvaram u decimalan i to je broj 1
ovo je code koji sam uradio(radi kako treba) i profa nije zadovoljan jer treba sto manje da uzima vremena, mislim da je problem for petlja
int tiefe, je int broj i od njega zavisi koliko cu da uzimam zadnjih cifara od binarnog broja. ako je tiefe=2 onda od 1001 uzimam zadnje dvije cifre tj. 01 i tako dalje ako je
tiefe=1 onda uzimam samo zadnju cifru od 1001 tj uzimam broj 1.
unsigned long int key=keys.hashValue()*2 ovo je funkcija kojom ja dobivam broj koji trebam da pretvorim u binaran pa njegov dio binarnog pretvorim u decimalan
profa je nesto spominjao da bi moglo kao modulo da se radi nisam ga skontao. ako vi poznajete nesto jednostavnije molio bih da mi pomognete
hvala puno...
int ContainerImpl::hashf (Key keys) const { // ovako se zove funkcija koju cu pozvati kasnije negdje u zadatku (da ne buni)
[b]ovaj dio pretvara u binaran[/b]
std::vector <bool> t (tiefe);
int j=1 ;
unsigned long int key=keys.hashValue()*2;
for (int i=tiefe-1;i>=0;--i,++j)
t[i]=(key>>j)&1?1:0;
[b]ovaj ispod dio pretvara u decimalan [/b]
int u=1,o=0;
for (int i=1;i<tiefe;++i) {
int j=i;
if(t[i]) {
while (i){
u*=2;
--i;
}
o+=u;
i=j;
u=1;
}
}
if(t[0]) ++o;
return o;
}
hvala puno