Talsystemer

Tags:    c++

Hejsa allesammen...
Jeg er 1. semester E-ingeniør studerende. Jeg er blevet stillet den irriterende opgave, at lave en talsystems omregner... Den skal mindt kunne håndtere binært til decimalt og omvendt. If sætninger er ikke lovligt, for selvom det er noget værre rod, så kunne det ellers virke... Men som nye studerende skal vi jo "opdrages" :-)
Det skal konstrueres i C++ og sproget er ikke det jeg kender bedst... Et skarpt hoved der kan ha´ et hint til en løsning?

Mvh. Michael N P



10 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Må du bruge standardbiblioteket? Så er det jo så let som at lave nogle frække ting med stringstreams.
--
Blog:
http://www.sigkill.dk/blog



Jeg har ikke lyst til at lave dine hjemmeopgaver, men hvis du har specifikke spørgsmål må du gerne stille dem her, og så skal vi nok hjælpe.

Bemærk iøvrigt at de tre statements i følgende kode er ens, så man behøver ikke if:

Fold kodeboks ind/udKode 


(Hvis man er meget pedantisk er den sidste ikke helt det samme som de to første, men set udefra sker der det samme.)



Er det fordi du ikke ved hvordan man omregner eller er det sproget du vil have hjælp til?

(¯`·._.·[Brian Hvarregaard]·._.·´¯)
Praesto et Persto



Tak for svarene...
Så vidt jeg kan læse af mit eget spørgsmål, har jeg ikke bedt om at nogen laver opgaven for mig.
Jeg ved udemærket godt, hvordan man omregner mellem forskellige talsystemer. Jeg søger/søgte blot et hint til et princip, da det godt kan være svært, at være kreativ i et sprog man ikke er helt fortrolig med...



Metoden og kreativiteten er vel uafhængig af sprog !

(¯`·._.·[Brian Hvarregaard]·._.·´¯)
Praesto et Persto



Der er jeg ikke enig... Mit tidligere "sprog" hed logiske gates... Jeg er decideret hardware mand. Man kan drage mange paralleller, men det er bare noget halt andet med en visuel flade.

[Redigeret d. 14/10-05 15:20:00 af Michael N P]



Men uanset hvad, så betaler tålmodighed og grundigt arbejde med en bog i hånden sig altid. Det er trist konklusion, men hvis en opgave skal løses, kan man lige så godt gøre det selv...
det er trist man skal opfinde den dybe tallerken hver gang.
Fold kodeboks ind/udKode 


[Redigeret d. 14/10-05 17:28:17 af Michael N P]



Et par små bemærkninger:

Der er normalt 8 bits i en byte/char, så du skal tælle fra 0 til og med 7, i C++ skriver man normalt:
for (a = 0 ; a < 8; a++)

Denne linie gør ikke det du tror at den gør:
if (255 > n > 0)
Du er nød til at dele det op i to og bruge en &&

Man kunne overveje at bruge << i stedet for pow(2,a);

I stedet or n = n/2; kunne man skrive n /= 2; eller n >>= 1;



I stedet for n = n/2; kunne man skrive n /= 2; eller n >>= 1;


Hvad er det lige "n >>= 1;" gør?



Skifter n ét bit ned, svarer til at dividere med 2.




t