SirDrinkAlot Skrevet 13. oktober 2009 Del Skrevet 13. oktober 2009 Hvorfor bruker java 8-tallssytemet når skriver en 0 foran et heltall? f.eks. 0010 er 8. Hvordan kan jeg endre på det/løse problemet? Jeg trenger å regne på grupper av 4 siffer i titallsystemet, der det alltid er 4 siffer i hver gruppe. Så altså 9 = 0009 osv.. Jeg er temmelig grønn på java... Lenke til kommentar
Sk!ppy Skrevet 13. oktober 2009 Del Skrevet 13. oktober 2009 Regner med at du skriver ut ifra en array? Isåfall må du begynne på 0, ikke 1 Lenke til kommentar
SirDrinkAlot Skrevet 13. oktober 2009 Forfatter Del Skrevet 13. oktober 2009 Nei, nei, ingen array. bare et vanlig heltall. f.eks. int a = 0144 skriver jeg ut a, så får jeg at a = 100 som er 1*8² + 4*8 + 4 Lenke til kommentar
DevilsDecoy Skrevet 13. oktober 2009 Del Skrevet 13. oktober 2009 Skriver du 0 forran tolkes tallet som base 8 (oktal), så ikke gjør det hvis du ikke mener det... Fra http://java.sun.com/docs/books/tutorial/ja.../datatypes.html int decVal = 26; // The number 26, in decimal int octVal = 032; // The number 26, in octal int hexVal = 0x1a; // The number 26, in hexadecimal Lenke til kommentar
SirDrinkAlot Skrevet 13. oktober 2009 Forfatter Del Skrevet 13. oktober 2009 Problemet er at jeg mener det. Ser ut som eneste måten å komme rundt er å konvertere frem og tilbake mellom int og string. Lenke til kommentar
x871kx6167ss7 Skrevet 13. oktober 2009 Del Skrevet 13. oktober 2009 Er det noen grunn til at du må skrive det sånn? Lenke til kommentar
steingrim Skrevet 14. oktober 2009 Del Skrevet 14. oktober 2009 Du må skille mellom hvordan du representerer tall i koden din og hvordan du presenterer tall for brukeren. Som andre har påpekt, starter du med 0 så skriver du per def i oktalt tallsystem, akkurat som 0x er heksadesimalt. I koden din må du altså kutte ut ledende nuller, men det er ingenting i veien for at du presenterer tallene med ledende nuller til brukeren. For eksempel String.format("%04d", mittHeltall) Lenke til kommentar
delfin Skrevet 14. oktober 2009 Del Skrevet 14. oktober 2009 Jeg skjønner ikke helt hva du holder på med, og hva du prøver å gjøre. Hvis du limer inn koden kan jeg fortelle deg hva du skal gjøre. Lenke til kommentar
SirDrinkAlot Skrevet 14. oktober 2009 Forfatter Del Skrevet 14. oktober 2009 Jeg prøver å skrive kode for å håndtere vilkårlige lange regnestykker (addisjon, multiplikasjon osv..) uten å bruke ferdiglagede moduler som biginteger osv. Sånn jeg tenkte jeg skulle gjøre det var å regne ut et og et arrayelement for seg selv og så skrive ut arrayen etterpå. Problemet er at mange nuller forsvinner når jeg ikke kan bruke ledende nuller. Jeg tror jeg kanskje har kommet på en løsning nå, men kom gjerne med innspill hvis noen kan hjelpe. Lenke til kommentar
delfin Skrevet 14. oktober 2009 Del Skrevet 14. oktober 2009 Jeg prøver å skrive kode for å håndtere vilkårlige lange regnestykker (addisjon, multiplikasjon osv..) uten å bruke ferdiglagede moduler som biginteger osv. Sånn jeg tenkte jeg skulle gjøre det var å regne ut et og et arrayelement for seg selv og så skrive ut arrayen etterpå. Problemet er at mange nuller forsvinner når jeg ikke kan bruke ledende nuller. Jeg tror jeg kanskje har kommet på en løsning nå, men kom gjerne med innspill hvis noen kan hjelpe. Jeg skjønner fortsatt ikke problemet. Kode? Hvorfor bruker du ledende nuller? Lenke til kommentar
SirDrinkAlot Skrevet 14. oktober 2009 Forfatter Del Skrevet 14. oktober 2009 Jeg prøver å skrive kode for å håndtere vilkårlige lange regnestykker (addisjon, multiplikasjon osv..) uten å bruke ferdiglagede moduler som biginteger osv. Sånn jeg tenkte jeg skulle gjøre det var å regne ut et og et arrayelement for seg selv og så skrive ut arrayen etterpå. Problemet er at mange nuller forsvinner når jeg ikke kan bruke ledende nuller. Jeg tror jeg kanskje har kommet på en løsning nå, men kom gjerne med innspill hvis noen kan hjelpe. Jeg skjønner fortsatt ikke problemet. Kode? Hvorfor bruker du ledende nuller? Fordi når arrayet skrives ut mangler det mange nuller, men jeg har nok løst det nå. Regner bare med arrayet som vanlig og så legger jeg bare til nuller det det trengs etterpå. Ikke at jeg har gjordt det enda. Lenke til kommentar
x871kx6167ss7 Skrevet 14. oktober 2009 Del Skrevet 14. oktober 2009 Dersom vi antar at 0123 hadde blitt tolket som desimaltallet 123 av kompilatoren ville ikke det utgjort noen forskjell for utskrift, ettersom 0123 og 123 er nøyaktig det samme tallet. Når du da skriver ut tallet så kan ikke programmet vite om du skrev et null-tall forran når du tilordnet variablen. Når det gjelder utskrift, så er det mulig å "få tilbake" nullene. Som steingrim sa så kan du skrive: String.format("%04d", helTall); eller for utskrift: System.out.printf("%04d", helTall); som vil legge til ledene 0-er (så lenge det brukes mindre enn 4 siffer). Lenke til kommentar
blackbrrd Skrevet 14. oktober 2009 Del Skrevet 14. oktober 2009 Jeg foreslår du tar en titt på kildekoden til BigInteger klassen, så ser du gode eksempler på hvordan du kan løse oppgaven du har satt deg fore. Det virker som du er et godt stykke ute på heia når du legger til ledende nuller for å regne... Kildekoden kan du laste ned fra Sun, hvis du ikke har gjort det allerede. Lenke til kommentar
Mapster Skrevet 16. oktober 2009 Del Skrevet 16. oktober 2009 Virker ikke som du er så veldig villig til å forklare hva det faktisk er du skal gjøre :S Jeg klarer ikke å se for meg noen grunn til å måtte ha ledende nuller i int variablene dine :S Jeg kan forstå at programmet ditt skal kunne håndtere at en bruker sender inn et tall med ledende nuller, men da er det ikke verre enn å parse strengen til int. Og som nevnt av flere personer her så finnes det mange måter å skrive ut et tall med ledende nullere, men det skal ikke på noe punkt være nødvendig å ha tall representert med ledende nullere internt i programmet (du kan til og med konvertere tallet til en streng igjen og legge til nullere). Hvis ditt mål er å tolke et regneutrykk, f.eks "5+4*3+14-100/94" så bør du skrive en parser. Men det kan bli ganske komplisert for en nybegynner i java å parse utrykk med mer enn en operatør, da man må ta hensyn til assosiativitet og presedens. Kan gjerne fortelle mer om dette hvis det er det som er ditt mål. (er forøvrig mye lettere å jobbe med prefiks utrykk da) Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå