myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   Brauche Hilfe bei Bits in C++!!! (https://mygully.com/showthread.php?t=2051973)

fener1907 28.05.10 14:54

Brauche Hilfe bei Bits in C++!!!
 
ich habe seit ein paar wochen mit c++ angefangen und bin dann in meinem c++ buch auf das thema bit operatoren, bits aufmerksam geworden , aber ich versthe das ganze mit den bits nicht.
1. was sind bits?
2.Wozu dienen bits?
(Sehr einfache beispiele wären gut!)
3.Wann brauch ich dass?
4.Aufbau?
5.Wie nutz ich es?
6. Was hat bits mit binär zu tun?
7.Was hat dieses Beispiel für eine logik?:

~ 01101110
AND 00111100
------------
00101100


Ich würde mich sehr freuen wenn mir jemand auf die fragen eine ausführliche erkärung schreiben würde.Es wäre wirklich sehr hilfreich. Nätürlich hab ich in google nach einer guten erklärung gesucht, aber sie erklären das nicht ausführlich(oder nicht so das ich es verstehe).Z.B:[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]


ps: Bitte keine mob-kommentare ich habe nur um hilfe gebeten.

phantasm 28.05.10 15:02

Bitte änder deine Titelüberschrift bitte

Eine Überschrift solle aussagekräftig sein .

fener1907 28.05.10 15:19

wie ändert man das denn???

phantasm 28.05.10 15:34

gehst auf editieren ---- erweitert
dann kannst du deine überschrift ändern

Mint 28.05.10 16:02

Bits sind die kleinsten Speichereinheiten die Der PC kennt. Ein Bit kann entweder Null oder eins sein; Strom an oder Strom aus.
8 Bits sind ein Byte
1000 Bytes sind ein Kilobyte
1000000 Bytes sind ein Megabyte und so weiter, bis man dan über Gigabyte auf Terrabyte kommt und so weiter.
In Programmiersprachen gibt es sogenannte logische Operatoren, z.B. and, or oder not die Verschiedene Ausdrücke verknüpfen. Ein Bitweises Oder vergleicht z.B. zwei Zahlen im Binärcode (aus nullen und Einsen) und übernimmt in diesem Fall die höheren.
Lies dir einfach diese drei Seiten durch:
  1. [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]
  2. [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]
  3. und [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

Falls du noch konkrete Fragen hast frag einfach nach!
Ansonsten hoffe ich dass ich helfen konnte,
mfg, Mint.

gosha16 28.05.10 16:06

@Mint,
1024 Bytes sind ein KB
1024 KB sind ein MB

Mint 28.05.10 16:09

Shit sorry, war mir irgendwie entfallen. Klar, 1024 mb ein Gb usw.....
Soll ich's editieren oder mich weiter auslachen lassen :D

mfg, Mint.

gosha16 28.05.10 16:11

lass dich weiter auslachen.

fener1907 28.05.10 20:36

danke für die antworten, hat sich gelohnt, dass ich gefragt habe.(jetzt ist mir das mit den bits klarer).

Mint 29.05.10 11:57

Kein Problem ;)
http://i.mygully.com/mygullynew/buttons/post_thanks.gif

mfg, Mint.

Banghard 29.05.10 19:10

1000 Byte sind natürlich 1 Kilobyte, also 10³ Byte. 10³ Gramm sind auch ein Kilogramm und 10³ Meter sind eben ein Kilometer. Lässt sich ja beispielsweise auch schön im Wikipedia Artikel nachlesen.

Von daher hast du das gar nicht falsch ausgedrückt, Mint.

@TE

[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

Mint 29.05.10 19:21

Hatte ich ja auch im Wikipedia Artikel nachgelesen aber das ist nur rein mathematisch gesehen richtig. Bei Computern sind nunmal 1024mb ein gb und nicht 1000, ich weis auch nicht warum. Also wer's weis (oder irgendetwas besser weis) bitte melden!

mfg, Mint.

Banghard 29.05.10 19:43

Naja, es steht ja dort beschrieben. Es gibt diese SI-Präfixe wie Kilo, Mega, Giga. Diese wurden im Prinzip "falsch" für die Bezeichnung von Speicherkapazitäten nach Zweierpotenzen verwendet. Denn so wurden 1024 Byte als Kilobyte bezeichnet, es hatte sich aber leider erstmal so durchgesetzt.

Diese SI-Präfixe kennt jeder, sie sagen eben aus, dass 10³ Gramm eine Kilogramm sind und wiederum 10 hoch minus drei sind ein Milligramm. Dieses System wurde eben sehr ungeschickt auf Bytes angewendet. Man hat quasi die Bezeichnungen für Dezimalpotenzen auf Zweierpotenzen angewendet, was für Verwirrung sorgt.

Daraus ergeben sich Umrechnungs- und Interpretationsprobleme. Jeder kennt das von den DVD-Rohlingen die mit 4,7 GB verkauft werden, aber dann nur 4,38 GB auf dem Rechner angezeigt werden.

Die "International Electrotechnical Commission", kurz IEC, hat dann neue IEC-Präfixe vorgeschlagen, die mittlerweile immer mehr Bedeutung finden, aber sich noch nicht gänzlich durchgesetzt haben. Sinnvoll sind diese Präfixe auf jeden Fall und man sollte sie auch verwenden, da sie eine Unterscheidung zwischen Dezimal- und Zweierpotenzen erlauben.

Demnach sind 1 Kilobyte = 1000 Byte (10³ -> Dezimalpotenz) und 1 KibiByte = 1024 Byte (2 ^ 10 -> Zweierpotenz).

Der Sinn dahinter sollte klar sein. Richtet man sich nach dem "alten" System kommen solche Interpretationsprobleme wie zwischen dir und Gosha auf.


@Edit:

Nochmal das Beispiel mit der DVD etwas erläutert:

Die DVD-Hersteller verkaufen 4,38 * 2 ^ 30 = 4,7 GB Rohlinge. Im Windows beispielsweise werden dann 4,38 * 10 ^ 9 = 4,38 GB angezeigt. Das ist natürlich sehr ungeschickt, wenn zwei unterschiedliche Rechensysteme mit gleichen Namen angewendet werden. Letztendlich sind dennoch rund 4.700.000.000 Byte gemeint.

Deshalb bin ich auch ein Verfechter der neuen Präfixe: jeder weiß dann genau, was gemeint ist und wie zu rechnen ist.

Banghard 29.05.10 21:31

Zitat:

Zitat von fener1907 (Beitrag 20813450)
7.Was hat dieses Beispiel für eine logik?:

01101110 -> Byte 1
00111100 -> Byte 2
------------
00101100 -> Ergebnis

ADD!


Um die Funktionsweise der Bit-Operatoren zu verstehen schreibt man beide Bytes untereinander (wie oben) und geht dann einmal durch. In diesem Beispiel oben geht es um AND, welches besagt, dass das Ergebnis nur 1 ist, wenn beide Zahlen 1 sind, ansonsten ist es immer 0. Man nimmt also eine Stelle von Byte 1 und vergleicht sie mit der drunterliegenden Stelle von Byte 2. Bei der AND Operation hat man also (von links nach rechts) bei der 1. Stelle: zweimal null -> ergibt null. Nächste Stelle: einmal eins, einmal null -> ergibt null; an der 3. Stelle dann: zweimal eins, ergibt eins.

Bei OR, XOR und und NOT gelten dann eben andere Bedingungen. Bei XOR gilt bspw. nur 1, wenn genau eine der Stellen 1 ist, in allen anderen Fällen kommt als Ergebnis 0.

Das sind im Prinzip nur Rechenoperationen.

Zitat:

Zitat von fener1907 (Beitrag 20813450)
Nätürlich hab ich in google nach einer guten erklärung gesucht, aber sie erklären das nicht ausführlich(oder nicht so das ich es verstehe).Z.B:[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

Der Link ist gar nicht so übel. Wenn man einmal das Prinzip verstanden hat, dann ist es easy.

gosha16 29.05.10 21:51

Zitat:

Zitat von Banghard (Beitrag 20817716)
1000 Byte sind natürlich 1 Kilobyte, also 10³ Byte. 10³ Gramm sind auch ein Kilogramm und 10³ Meter sind eben ein Kilometer. Lässt sich ja beispielsweise auch schön im Wikipedia Artikel nachlesen.

Von daher hast du das gar nicht falsch ausgedrückt, Mint.

Kilobyte ist ein Eigenbegriff und steht nunmal für 1024 Byte, daran wirst auch du nix ändern können.

Banghard 29.05.10 22:04

Zitat:

Zitat von gosha16 (Beitrag 20818202)
Kilobyte ist ein Eigenbegriff und steht nunmal für 1024 Byte, daran wirst auch du nix ändern können.

Argumentation? Was du sagst ist die nicht-standardisierte und mathematisch nicht korrekte Altauffassung von Kilobyte. Ich verweise auf den Kommentar von mir dazu und auf den Wikipedia Artikel zum Thema "Byte". Wenn dir das nicht reicht krame ich auch gern ein Fachbuch heraus und zitiere daraus.

gosha16 29.05.10 22:14

Ja krame mal dein Fachbuch heraus. Mein Argument ist, wie unschwer zu erkennen, das Kilobyte ein Eigenbegriff ist.

Mathematisch nicht Korrekt? Dann nenn mir mal die Zweierpotenz die genau 1000 ergibt.

Banghard 29.05.10 22:16

Zitat:

Zitat von gosha16 (Beitrag 20818250)
Ja krame mal dein Fachbuch heraus. Mein Argument ist, wie unschwer zu erkennen, das Kilobyte ein Eigenbegriff ist.

Hast du meinen Kommentar und den Wikipedia Artikel überhaupt gelesen?

Zitat:

Zitat von gosha16 (Beitrag 20818250)
Mathematisch nicht Korrekt? Dann nenn mir mal die Zweierpotenz die genau 1000 ergibt.

Kilo, Mega und Giga sind SI-Präfixe und die werden mit der Zehnerpotenz errechnet. Siehe das DVD bzw. allgemeine Speicherangabeproblem. Mittlerweile ist das standardisiert, was du anscheinend noch nicht mitbekommen hast.

gosha16 29.05.10 22:26

Da steht auch drin das das ganze erst 1998 standardisiert wurde und vorher der Begriff Kilobyte gang und gebe war. Wenn man bedenkt wie lange es Bits und Bytes schon gibt...

...tatsache ist das Kilobyte = 1000 Byte Fachlich falsch ist.

urga 29.05.10 22:28

sinnfreie 10M lols von mir :) oder waren es 10*1024-1k ???

Banghard 29.05.10 22:33

Zitat:

Zitat von gosha16 (Beitrag 20818275)
Da steht auch drin das das ganze erst 1998 standardisiert wurde und vorher der Begriff Kilobyte gang und gebe war. Wenn man bedenkt wie lange es Bits und Bytes schon gibt...

...tatsache ist das Kilobyte = 1000 Byte Fachlich falsch ist.

Nach dem alten System stimmt deine Aussage, nach dem neuen nicht. Ich habe es lang und breit beschrieben, ich will nur keine Fullquote hier machen.

Nach dem neuen System sind 1000 Byte = 1 Kilobyte, was auch absolut sinnvoll ist, wenn man mit SI-Präfixen arbeitet. 1024 Byte sind nach dem neuen System ein Kibibyte.

Du scheinst es ja nicht lesen zu wollen, aber ich habe mehrmals darauf hingewiesen, dass es ein altes System gibt, bei dem die SI-Präfixe falsch angewendet wurden.

Warum also veraltete und uneindeutige Begrifflichkeiten verwenden, die aktuell in der Informatik am Aussterben sind?

gosha16 29.05.10 22:40

Die einzigen Bereiche wo die Aussterben sind die wo man damit Geld verdienen kann. z.B. Festplatten.
Unsere guten alten (und auch neuen) Betriebssysteme benutzen auch noch die "falsche" Einheit, von Aussterben kann überhaupt keine Rede sein.

//Edit
Im IRC könnte man sich darüber wesentlich effektiver streiten.

Banghard 29.05.10 22:44

Ich spreche von der Informatik als Wissenschaft, nicht vom Endbenutzermarkt. :rolleyes:

Soweit ich weiß nutzt Ubuntu beispielsweise schon die neuen Begriffe, Mac OS X wird im Wikipedia Artikel auch genannt. Also die zwei am meisten verbreiteten Unix-Derivate (bzw. das eine die verbreitetste Linux Distribution) beim Endbenutzer.

EDIT:
Ubuntu schau ich gleich mal nach.

gosha16 29.05.10 22:48

Dann sind alle Informatikprofessoren/Ingenieure die ich kennengelernt hab anscheinend zu doof.

Banghard 29.05.10 22:58

Zitat:

Zitat von gosha16 (Beitrag 20818313)
Dann sind alle Informatikprofessoren/Ingenieure die ich kennengelernt hab anscheinend zu doof.

Ich weiß gar nicht was du hast, ich erzähl dir sicher keine Märchen und du kannst es ja selbst nachlesen. Das mit den 2 Systemen ist aber mittlerweile klar, oder?

gosha16 29.05.10 23:10

ja es ist klar. Mir geht es auch nicht darum die Norm außer Kraft zu setzen. Aber grade hier im Kontext ist es Käse dem OP zu erzählen das ein Kilobyte 1000 Byte sind.

//Edit, BackTrack4 (mit KDE) nutzt GB statt GiB
genau so wie FreeBSD 8 Current.

Aber genug jetzt, es artet langsam aus :p

Banghard 29.05.10 23:25

Zitat:

Zitat von gosha16 (Beitrag 20818361)
Aber grade hier im Kontext ist es Käse dem OP zu erzählen das ein Kilobyte 1000 Byte sind.

Wie gesagt, es etabliert sich mittlerweile ein neuer Standard und dieser ist auch nicht unsinnig oder überflüssig, sondern von allen großen internationalen Standardisierungsgremien anerkannt und auch in Europa mittlerweile der ganz offizielle und festgelegte Standard.

Ich denke schon, dass man aktuelles Wissen vermitteln sollte. Hier nochmal ein umfangreicher Artikel zu dem Thema, der auch genauer auf die Verbreitung eingeht:

[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

Zitat:

Das Computermagazin PC Games Hardware verwendet sie ab der Ausgabe 11/2007 (Erscheinungsdatum 2. Oktober 2007).[13] Davon abgesehen gibt es mittlerweile einige Programme, welche die Binärpräfixe unterstützen, z. B. der Linux-Kernel[14], manche Linux-Distributionen, die GNU core utilities[15], KDE 4, phpMyAdmin, WinSCP[16] und einige BitTorrent-Programme. Zumindest im Fall des Linux-Kernels beschränkt sich die Unterstützung auf diagnostische Meldungen wie etwa die Größenangabe erkannter Massenspeicher. OS X geht ab Version 10.6 den umgekehrten Weg und verwendet die metrischen Präfixe in korrekter metrischer Bedeutung.

Hier wird es auch nochmal umfangreich erklärt:

[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

Zitat:

Im Alltag wird oft in Zehnerpotenzen gerechnet, so umfaßt ein „Kilometer“ beispielsweise 1000 Meter. Da Speicherbausteine jedoch nur in Vielfachen von Zweierpotenzen, wie 1024 Byte, produziert werden und nicht in Vielfachen von 1000 Byte, wird von Digitaltechnikern als Einheit traditionell das KByte mit 1024 Byte verwendet. Deswegen wird die Einheit KByte auch nicht „Kilo-Byte“ gesprochen, denn der Vorsatz „Kilo“ stünde ja für Tausend, und sie wird auch nicht mit einem kleinen „k“ geschrieben, weil ein kleines „k“ ja für Tausend stünde.

Durch die starke Verbreitung der Informationstechnik in den folgenden Jahren wurden Teile der Bevölkerung damit konfrontiert, die mit dieser Bedeutung nicht vertraut waren, aber das „Kilometer“ im Sinne von „1000 Meter“ kannten. Um durch die Bezeichnung deutlicher zu machen, daß nicht der Tausendervorsatz „Kilo“ gemeint ist, wurden schließlich inzwischen spezielle neue Vorsätze ersonnen. Das „Binärkilo“ wird mit dem Vorsatz „Ki“ geschrieben, der für „kibi“ (“kilobinary ”) steht. Das Binärkilo ist als 1024 definiert und in seiner Schreib- und Sprechweise deutlicher vom Kilo unterschieden.
Nur um nochmal die Sinnfrage zu klären und um darauf hinzuweisen, dass "Kilobyte = 1024 Byte" ein traditioneller Verständnisfehler ist, der durch ein neues Begriffssystem beseitigt werden soll.

Mint 30.05.10 10:42

Bis einer heult.....:cry:

WodkaBaron 04.06.10 11:40

oh man... dann trefft euch doch einfach in der mitte... 1kb = 1012 byte und gut is =)

gosha16 04.06.10 16:00

ich sagte es ist genug, das thema wurde ausreichend diskutiert.

fener1907 04.06.10 22:14

jaaa!!! danke an alle die mit diskutiert haben!!!

Mint 08.06.10 16:32

Wer das mit den Bitweisen Operatoren immer noch nicht verstanden hat sollte mal [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...] ungefähr ab der Mitte lesen. Der rest ist auch ganz interresant ;)

mfg, Mint.

fener1907 08.06.10 18:57

danke!!!!

Mint 08.06.10 19:12

Kein ding ;)

Trotzdem geht auch der hier: http://i.mygully.com/mygullynew/buttons/post_thanks.gif

mfg, Mint.

ericz100 29.07.10 04:42

Strom an Strom aus... hmm.. . <- Volksglaube...

hohe Spannung - > 1
niedrige - > 0.

8 Bit 1 Byte.. und so weiter..

Datentypen haben unterschiedliche Größen..

Beispielsweise 32 bit - Integer oder der neuere mit 64-Bit.. .
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.