Forum » Programiranje » Bin v Dec [java]
Bin v Dec [java]
mR-Jubax ::
Lep pozdrav!
V javi bi želel izdelati programček, ki bi neko število iz desetiškega pretvoril v binarni zapis. Sestavil sem tako kodo:
Program lepo deluje za vsa števila (vsaj tistih 50 različnih, ki sem jih preizkusil), zatakne pa se pri številu 8 oz. binarno 1000. Stevila 1000 mi ne shrani pravilno v tabelo stevkeBin, katera ima v vsaki celici eno števko vnešenega števila. Po vseh mojih izračunih bi moral tak postopek delovati, vendar mi pri številu 1000 v tabelo shrani samo 0 0 0, 1 pa kar nekam izgine. Kje sem ga polomil?
Hvala!
EDIT: Program prav tako ne deluje za število 64 oz. 1000000
EDIT 2: Program ne deluje za vsako "tretje število": 0, 1000, 1000000, 1000000000, ... -> "vsake 3 dodane ničle"
V javi bi želel izdelati programček, ki bi neko število iz desetiškega pretvoril v binarni zapis. Sestavil sem tako kodo:
int izpisStevilaDec=0;
int stStevk=0;
System.out.println("Vnesite stevilo:");
int steviloBinInt=preberiInt();
System.out.print(steviloBinInt);
stStevk=(int)(Math.log(steviloBinInt)/Math.log(10))+1;
int[] stevkeBin=new int[stStevk];
for (int i=0;i<stStevk;i++){
stevkeBin[i]=steviloBinInt%10;
steviloBinInt/=10;
}
for(int j=1;j<=stStevk;j++) {
izpisStevilaDec+=stevkeBin[j-1]*Math.pow(2, j-1);
}
System.out.println(" = "+izpisStevilaDec);Program lepo deluje za vsa števila (vsaj tistih 50 različnih, ki sem jih preizkusil), zatakne pa se pri številu 8 oz. binarno 1000. Stevila 1000 mi ne shrani pravilno v tabelo stevkeBin, katera ima v vsaki celici eno števko vnešenega števila. Po vseh mojih izračunih bi moral tak postopek delovati, vendar mi pri številu 1000 v tabelo shrani samo 0 0 0, 1 pa kar nekam izgine. Kje sem ga polomil?
Hvala!
EDIT: Program prav tako ne deluje za število 64 oz. 1000000
EDIT 2: Program ne deluje za vsako "tretje število": 0, 1000, 1000000, 1000000000, ... -> "vsake 3 dodane ničle"
- spremenil: mR-Jubax ()
Terman ::
Kako lahko dobiš pravilno število števk? Če na hitro testiraš na kalkulatorju (za 8) boš dobil:
ln(8)/ln(10) = log(8) = 0.903089987
(int)0.903089987 = 0
0 + 1 = 1
ln(8)/ln(10) = log(8) = 0.903089987
(int)0.903089987 = 0
0 + 1 = 1
mR-Jubax ::
Pa saj 8 ima eno števko..?
Sicer sem pa problem rešil tako, da sem pri int[] stevkeBin=new int[stStevk]; dodal še +1 pri dolžini tabele. Vseeno pa me zanima, zakaj ne izračuna pravilnega števila števk za število 1000.
Sicer sem pa problem rešil tako, da sem pri int[] stevkeBin=new int[stStevk]; dodal še +1 pri dolžini tabele. Vseeno pa me zanima, zakaj ne izračuna pravilnega števila števk za število 1000.
Zgodovina sprememb…
- spremenil: mR-Jubax ()
arjan_t ::
"dolžino" dobiš po enačbi:
logb(n) + 1 kjer je b v tvojem primeru 2 (dvojiška predstavitev), log se zaokroži navzdol
logb(n) + 1 kjer je b v tvojem primeru 2 (dvojiška predstavitev), log se zaokroži navzdol
Zgodovina sprememb…
- spremenil: arjan_t ()
Spura ::
Zakaj preprosto ne shranjujes stevk v arraylist namesto array in problem racunanja stevila mest odpade?
mR-Jubax ::
hvala za vse odgovore!
@Spura: Ker sem še bolj začetnik in te opcije nisem poznal. Si bom pa pogledal sedaj, kako to izgleda. Hvala!
@Spura: Ker sem še bolj začetnik in te opcije nisem poznal. Si bom pa pogledal sedaj, kako to izgleda. Hvala!
Vredno ogleda ...
| Tema | Ogledi | Zadnje sporočilo | |
|---|---|---|---|
| Tema | Ogledi | Zadnje sporočilo | |
| » | (težava) long long v COddelek: Programiranje | 1073 (829) | technolog |
| » | C# program za pretvorbo v desetiško število z rekurzijoOddelek: Programiranje | 1637 (1360) | MrStein |
| » | JavaOddelek: Pomoč in nasveti | 1471 (1096) | shadeX |
| » | osnove v Javi - zvezdiceOddelek: Programiranje | 3775 (2997) | Tutankhamun |
| » | [JAVA] Simpl problem z IF - ELSE stavkom :)Oddelek: Programiranje | 1904 (1647) | morbo |
