Sondre Skrevet 30. mai 2010 Del Skrevet 30. mai 2010 En oppgave i programmerings-boken min ber meg om å gjøre om det dekadiske tallet 10 til binær form. Jeg vet at svaret skal være 1010, men når jeg bruker formelen som er beskrevet i boken får jeg bare 10. 1*10^1 + 0*10^0 er regnestykket som jeg har forstått skal bli 1010, men det blir det altså ikke. Lenke til kommentar
GeirGrusom Skrevet 30. mai 2010 Del Skrevet 30. mai 2010 (endret) while(tall) { cout << (tall & 1); tall >>= 1; } edit: den skriver kanskje ut feil vei template<typename T> void WriteBin(T tall) { T max = 1 << ((sizeof(T) << 3) - 1); while(tall) { cout << (tall & max); tall <<= 1; } } Endret 30. mai 2010 av GeirGrusom 1 Lenke til kommentar
Sondre Skrevet 30. mai 2010 Forfatter Del Skrevet 30. mai 2010 Ah, beklager hvis spørsmålet var litt misledende, men jeg tenkte matematiske sett, ikke programmering. Kanskje jeg skulle postet i matte-tråden istedet. Lenke til kommentar
NevroMance Skrevet 31. mai 2010 Del Skrevet 31. mai 2010 Bruk en litt modifisert primtallsfaktorisering, du har følgende to regler: Hvis tallet ditt er delelig på 2, del på 2 og sett 0 som "primtall" Hvis tallet ikke er delelig på 2, trekk fra 1, del på 2 og sett 1 som "primtall" Eksempel: 14 | 0 7 | 1 3 | 1 1 | 1 0 Så tallet 14 i 10 tallssystemet er 1110. 1 Lenke til kommentar
GeirGrusom Skrevet 31. mai 2010 Del Skrevet 31. mai 2010 Fortsatt en algoritme og ikke et uttrykk ^^ Lenke til kommentar
NevroMance Skrevet 31. mai 2010 Del Skrevet 31. mai 2010 Sant, men i motsetning til algoritmen hans fungerer min virker som den han fant er motsatt vei. Altså fra binær til desimal. Lenke til kommentar
Sondre Skrevet 31. mai 2010 Forfatter Del Skrevet 31. mai 2010 (endret) Tusen takk! Den algoritmen var genial. virker som den han fant er motsatt vei. Altså fra binær til desimal. Det kan godt hende min metode var fra binær til desimal, ja. Jeg fortsår rett og slett ikke hva boken prøver å fortelle. Her er utsnittet: Grunntallet i det dekadiske tallsystemet er 10, mens det i det binære tallsystemet er 2. Hvordan kan det stemme at 25 i det dekadiske tallsystemet blir 11001 i det binære? Det ser vi ved å huske at et siffers posisjon bestemmer hvilken potens av grunntallet vi har med å gjøre: 25 = 2*10^1 + 5*10^0 11001 = 1*2^4 + 1*2^3 + 0*2^2 + 0*2^1 + 1*2^0 = 25 Endret 31. mai 2010 av Sondre Lenke til kommentar
NevroMance Skrevet 31. mai 2010 Del Skrevet 31. mai 2010 Algoritmen din er fra binær ja. Det som er relevant av utdraget ditt er egentlig det siste Som du ser er algoritmen for å konvertere noe som helt til desimal å legge sammen tallet på en plass multiplisert med verdien til den plassen. F. eks. den andre 1'ern i 11001 ligger på plass . 1 Lenke til kommentar
Sondre Skrevet 31. mai 2010 Forfatter Del Skrevet 31. mai 2010 (endret) Den formelen var egentlig helt grei. Den jeg ikke forstod var Det var den jeg prøvde meg på først som jeg trodde skulle gi riktig svar mtp. desimal til binær, men det gjorde den ikke. Så hvilket utbytte får man egentlig av den? Hva er det man skal fram til? Endret 31. mai 2010 av Sondre Lenke til kommentar
NevroMance Skrevet 31. mai 2010 Del Skrevet 31. mai 2010 Det er bare for å sammenligne hvordan ett tall kan representeres både i binært og desimal. 1 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å