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 | 948 (704) | technolog |
» | C# program za pretvorbo v desetiško število z rekurzijoOddelek: Programiranje | 1505 (1228) | MrStein |
» | JavaOddelek: Pomoč in nasveti | 1374 (999) | shadeX |
» | osnove v Javi - zvezdiceOddelek: Programiranje | 3579 (2801) | Tutankhamun |
» | [JAVA] Simpl problem z IF - ELSE stavkom :)Oddelek: Programiranje | 1780 (1523) | morbo |