» »

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:
				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

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.

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

Zgodovina sprememb…

  • spremenil: arjan_t ()

gendale ::

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!


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

(težava) long long v C

Oddelek: Programiranje
5861 (617) technolog
»

C# program za pretvorbo v desetiško število z rekurzijo

Oddelek: Programiranje
81369 (1092) MrStein
»

Java

Oddelek: Pomoč in nasveti
141284 (909) shadeX
»

osnove v Javi - zvezdice

Oddelek: Programiranje
403388 (2610) Tutankhamun
»

[JAVA] Simpl problem z IF - ELSE stavkom :)

Oddelek: Programiranje
151689 (1432) morbo

Več podobnih tem