Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de
Infos hier [BETA]

  
c++.de ::  C++ (auch C++0x und C++11) ::  Probleme bei der Umrechnung
Antwort schreiben
Benutzername:
Titel:
Nachrichtentext:
  :)  :D  ;)  :(  :p  :mad:  :rolleyes:  :eek:  :confused:  :cool:  :o)  :leak:  :live:  :die:  :idea:  :arrow:  :warning: 
                             
                         
         
           
                             
                             
                             
             


BBCode in diesem Beitrag deaktivieren [BBCode]
Smilies in diesem Beitrag deaktivieren
Probleme bei der Umrechnung and 303965
     


Themen-Überblick 
(Aktualisieren)
Autor Nachricht
kahlme00
17:41:34 26.05.2012   Titel:   Zitieren

Hallo

Bin auch Neu in C++ Welt und würde dieses Problem folgendermaßen lösen:

Ein array von bitelementen definieren oder deklarieren, dann mit einer for schleife das aray auffüllen:

C++:
for(int i=0;i<Max;i++)
    {
        cout<< i+1 <<" bit wert eingeben: ";
        cin>> bits[i];
    }


Danach auch mit einer For schleife deine Umwandlung machen:

C++:
wert += bits[i]*(pow(2,j));


um die Funktion pow() nutzen zu können musst du
C++:
#include<cmath>
einbinden.

also viel spass
DirkB
17:22:44 26.05.2012   Titel:   Zitieren

Hacker schrieb:
DirkB schrieb:

@Hacker
Du berechnest die Zahl falschrum. Das fällt bei der 9 aber nicht auf.


Nein. Ich berechne mit einer anderen Bit-Reihenfolge.
i.A ist das MSB links und das LSB rechts, wie in den anderen Zahlensystemn auch (Dezimal, Hexadezimal, Oktal)

Sehr einfach wäre auch
C++:
strtol(input,NULL,2);
:D
Aber auch das arbeitet mit LSB rechts.
volkard
17:07:21 26.05.2012   Titel:   Zitieren

pyhax schrieb:
@volkard: Fehlt bei dem ersten nicht ein * 2 ?

Nein. Statt a=a*2 ist es ja jetzt ein a+=a
pyhax
17:06:24 26.05.2012   Titel:   Zitieren

@volkard: Fehlt bei dem ersten nicht ein * 2 ?
Unregistrierter
16:34:45 26.05.2012   Titel:   Zitieren

hustbaer schrieb:
Hacker schrieb:
Bei speziell Zweierpotenzen gibt es mehrere Wege:

C++:
1 >> Exponent
 
std::pow(2, Exponent);

... wie so oft ein Level an Falschheit/Unsinnigkeit das schon körperlich weh tut.

1) Siehe Beitrag von pyhax
Ja, Flüchtigkeitsfehler. Passiert dir nie, was?
Zitat:


2) std::pow() zum Berechnen einer Integer Zweierpotenz? Geht's noch?
Ja? Denn ein Weg ist es immmer noch (auch wenn ein vergleichsweise ineffizienter).

@volkard: Ja, das ist der schnellste.
volkard
16:32:11 26.05.2012   Titel:   Zitieren

Wie können ja mischen.
C++:
a += *ch - '0' + a;

(Leider total unleserlich.)
Ach, wenn schon Unfug, dann richtig.
C++:
a +=+ a +*+ ch +~+ '0' -~- 0;;
hustbaer
16:32:01 26.05.2012   Titel:   Zitieren

Hacker schrieb:
Bei speziell Zweierpotenzen gibt es mehrere Wege:

C++:
1 >> Exponent
 
std::pow(2, Exponent);

... wie so oft ein Level an Falschheit/Unsinnigkeit das schon körperlich weh tut.

1) Siehe Beitrag von pyhax

2) std::pow() zum Berechnen einer Integer Zweierpotenz? Geht's noch?
chaosboy86
16:31:24 26.05.2012   Titel:   Zitieren

danke an alle aber ich glaube ich stelle mich einfach zu blöd an....
Unregistrierter
16:29:00 26.05.2012   Titel:   Zitieren

pyhax schrieb:
@Hacker: Nein, es muss 1 << Exponent heißen, nicht 1 >> Exponent.


Oh ja, editiert :D

@volkard: Ah, ich hab da += und nicht = gelesen, dachte du hast "meine" Version leicht verändert.
volkard
16:25:27 26.05.2012   Titel:   Zitieren

Hacker schrieb:
@volkard: Deine Version ist eig. falsch, nicht?
Denn:

Code:
2[h]5[/h] != 2 * 5 + 1

http://ideone.com/LR1ZZ
http://de.wikipedia.org/wiki/Horner-Schema

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.