Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Binärdarstellung anzeigen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
30.05.2004, 20:04 Uhr
chrisuni



Huhu ich habe mal wieder ein Problem.. und zwar will ich eine Zahl eingeben und mir von dieser dann die Binärdarstellung anzeigen lassen ( als string).

Nun weiß ich wie ich rechnerisch Du ausprobieren die Binärdarstellung hinbekomme :
Für Zahl 8 =
2^0 = 0
2^1 = 2
2^2 = 4
2^3 = 8

Daraus folgt Binärdarstellung 1000 für die Zahl 8.
Also... ich weiß jetzt nur nicht wie ich das berechnen kann, da ich auch überhaupt keine Ahnung habe wie man mit Potenzen in C/C++ rechnen kann,
(möglichst ohne auf irgendwelche Daten wie z.b. math.h zurückzugreifen)
und ich auch nicht weiß wie ich es hinbekomme das er mir halt bei kleinen Zahlen nur die ersten 4 bits (hoffe mal das ist jetzt richtig ) 0000 anzeigt und bei größeren Zaheln halt mehrere 1000 0000 1001 etc...

Kann mir vllt einer nen Typ geben, oder zumindest einen Ansatz so das mir klar wird wie ich es schaffe eine Zahl in der Binärdarstellung anzuzeigen.

Vielen Dank gruß chris
--
gruß chris

nehmts mir net übel ich bin nen Anfänger und seh manchmal den Wald vor lauter Bäumen nicht mehr ;)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
30.05.2004, 20:25 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


www.fun-soft.de/showtopic.php?threadid=6423&time=1085941475
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
30.05.2004, 20:28 Uhr
chrisuni



sry mein Fehler hab die Suchfunktion nicht benutzt...
vielen Dank
--
gruß chris

nehmts mir net übel ich bin nen Anfänger und seh manchmal den Wald vor lauter Bäumen nicht mehr ;)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
30.05.2004, 20:47 Uhr
chrisuni



sry nochmal was dazu:
Wo ist denn der unterschied zwischen dieser Aufgabe und dieser hier:

"Schreiben Sie eine Funktion, die die interne Bitdarstellung
(2er Komplettcodierung) eines int Wertes bestimmt."

Was ist denn die interne Bitdarstellung ?
--
gruß chris

nehmts mir net übel ich bin nen Anfänger und seh manchmal den Wald vor lauter Bäumen nicht mehr ;)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
30.05.2004, 21:33 Uhr
Pablo
Supertux
(Operator)


Interne Bitdarstellung ist wie Maschine deine Zahlen tatsächlich kodiert. Es gibt einiege Kodierungen, die binär Codierung (die normale), Betrag und Vorzeichen (oder auch 1er Komplement), und es gibt auch 2er Komplement Kodierung.

Das Problem mit der ersten Codierung ist das man nur Zahlen größer als 0 darstellen kann, die 2er Komplement kann aber negative Zahlen darstellen. Es gibt einen einzigen Unterschied. Das letze Bit wird nicht addiert sondern subtrahiert. Angenommen wir haben nur 4 Bit Register. Die Zahl


Code:
1 0 1 1



in Binärdarstellung ist die 1*2^0 + 1*2^1 + 0*2^2 + 1*2^3 = 11.

Wenn du aber

Code:
1 0 1 1


als 2er Komplement betrachtest ist: 1*2^0 + 1*2^1 + 0*2^2 - 1*2^3 = -5

Binärdarstellung ist: "Summe von i=0 bis i=n-1 von a_i*2^i"
2er Komplemnet: "Summe von i=0 bis i=n-2 von a_i*2^1 minus a_(n-1)*2^i

In LaTeX

LaTeX:

Bin\"ardarstellung: $[a] = \sum\limits_{i=0}^{i=n-1} a_i \cdot 2^i$\\
2er Komplement: $[a] = \sum\limits_{i=0}^{i=n-2} a_i \cdot 2^i - a_{n-1} \cdot 2^{n-1}$


--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 30.05.2004 um 21:34 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
30.05.2004, 21:57 Uhr
0xdeadbeef
Gott
(Operator)


Das hier wirft zwar ne Compiler-Warnung raus, funktioniert aber trotzdem:

C++:
std::string binaerdarstellung(unsigned int x) {
  std::string result;
  int pos = sizeof(int) * 8 - 1;

  result += char('0' + (x >> sizeof(int) * 8 & 1));
  do {
    if((sizeof(int) * 8 - pos) % 4 == 0)
      if(result == "0000")
        result = "";
      else
        result += ' ';
    result += char('0' + (x >> pos & 1));
  } while(--pos);

  return result;
}


Das ist allerdings kein besonders optimierter Code.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 30.05.2004 um 21:59 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: