KINGx - Das inoffizielle PlayStation Forum & News Portal
Bit-Verschiebung - Druckversion

+- KINGx - Das inoffizielle PlayStation Forum & News Portal (http://www.kingx.de/forum)
+-- Forum:    PS Vita / PSP (/forumdisplay.php?fid=1)
+--- Forum: Homebrew (/forumdisplay.php?fid=8)
+---- Forum: Development (/forumdisplay.php?fid=34)
+---- Thema: Bit-Verschiebung (/showthread.php?tid=73790)


Bit-Verschiebung - thewolf16 - 04.04.2013 20:36

Hallo,

bin dabei C zu lernen und bin gerade bei Bit-Verschiebung angekommen. Die Übungsaufgabe lautet wie folgt:

Code:
int a = 2, b = 5;

d = b << a;


Da ja 5 in Binärcode 101 ist und 2 Stellen nach Links gerückt (die Zahlen am Rand herausfallen und am rechten Ende 2 Nullen aufgefüllt werden) wird müsste das Ergebnis 100 sein was die Zahl 4 in Dezimalzahlen ist (also d = 4Wink. Jedoch soll laut der Seite das Ergebnis d = 20; (was die Binärzahl 10100 sein soll) sein. Was hab ich falsch gemacht?

MfG


RE: Bit-Verschiebung - CChako - 04.04.2013 20:51

Du hast lediglich etwas falsch verstanden.
int ist ein .. 32 (?) bit Datentyp.
Das heißt aus
00000000000000000000000000000101
wird
00000000000000000000000000010100

Die 1 würde rausfallen sofern du
10000000000000000000000000000000
um 1 nach links shiftest.


RE: Bit-Verschiebung - thewolf16 - 04.04.2013 21:06

Ah, Danke. Smile

Weißt du auch für was später sowas wie Bitmanipulation gut ist? Also die Anwendungsgebiete.


RE: Bit-Verschiebung - AirMAX - 04.04.2013 21:08

CChako :
Du hast lediglich etwas falsch verstanden.
int ist ein .. 32 (?) bit Datentyp.
Das heißt aus
00000000000000000000000000000101
wird
00000000000000000000000000010100

Die 1 würde rausfallen sofern du
10000000000000000000000000000000
um 1 nach links shiftest.


Genau !
Bei einer x86 Architektur hat der Datentyp int 32 bit und eine maximalgröße von 65535 (unsigned).
Bei einer x64 Architektur mit 64 bit hat int einen maximalwert von 4294967295 (unsigned).

Der Dank geht an Cchako, denn ich hätte nicht DARAN gedacht (war bei der suche nach der Antwort im dunkeln Big Grin )

Gruß Wink


RE: Bit-Verschiebung - laughingMan - 04.04.2013 21:08

CChako :
Du hast lediglich etwas falsch verstanden.
int ist ein .. 32 (?) bit Datentyp.
...


Grundsätzlich hast du damit Recht, es gibt aber in der Mikrocontrollerprogrammierung int mit 1 bis 32 Bit, je nachdem wie man es definiert. Nur so als kleine Anmerkung, in diesem Beispiel ist es aber relativ egalWink


RE: Bit-Verschiebung - AirMAX - 04.04.2013 21:12

thewolf16 :
Ah, Danke. Smile

Weißt du auch für was später sowas wie Bitmanipulation gut ist? Also die Anwendungsgebiete.


Es findet immer dort Anwendung wo Bitmanipulationen stattfinden, z.B. in MP3-Encodern/Decodern usw.
- Wikipedia Smile


RE: Bit-Verschiebung - thewolf16 - 04.04.2013 21:38

Genial, Danke euch. Smile Kann ja dann geschlossen werden.