|
Verfasser |
Nachricht |
thewolf16
King
Beiträge: 2.087
Gruppe: User
Registriert seit: Oct 2009
Status:
Offline
Danke erhalten: 1336
|
Bit-Verschiebung
Hallo,
bin dabei C zu lernen und bin gerade bei Bit-Verschiebung angekommen. Die Übungsaufgabe lautet wie folgt:
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 = 4. Jedoch soll laut der Seite das Ergebnis d = 20; (was die Binärzahl 10100 sein soll) sein. Was hab ich falsch gemacht?
MfG
|
|
04.04.2013 20:36 |
|
|
|
CChako
Experte
Beiträge: 621
Gruppe: User
Registriert seit: Dec 2011
Status:
Abwesend
Danke erhalten: 381
|
RE: Bit-Verschiebung
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.
|
|
04.04.2013 20:51 |
|
Folgende User bedanken sich: |
|
thewolf16
King
Beiträge: 2.087
Gruppe: User
Registriert seit: Oct 2009
Status:
Offline
Danke erhalten: 1336
|
RE: Bit-Verschiebung
Ah, Danke.
Weißt du auch für was später sowas wie Bitmanipulation gut ist? Also die Anwendungsgebiete.
|
|
04.04.2013 21:06 |
|
|
|
AirMAX
Durchstarter
Beiträge: 50
Gruppe: User
Registriert seit: Jun 2012
Status:
Offline
Danke erhalten: 5
|
RE: Bit-Verschiebung
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 )
Gruß
|
|
04.04.2013 21:08 |
|
Folgende User bedanken sich: |
|
laughingMan
News-Writer
Beiträge: 5.220
Gruppe: User
Registriert seit: Oct 2011
Status:
Offline
Danke erhalten: 2363
|
RE: Bit-Verschiebung
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 egal
|
|
04.04.2013 21:08 |
|
Folgende User bedanken sich: |
|
AirMAX
Durchstarter
Beiträge: 50
Gruppe: User
Registriert seit: Jun 2012
Status:
Offline
Danke erhalten: 5
|
RE: Bit-Verschiebung
Ah, Danke.
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
|
|
04.04.2013 21:12 |
|
Folgende User bedanken sich: |
|
thewolf16
King
Beiträge: 2.087
Gruppe: User
Registriert seit: Oct 2009
Status:
Offline
Danke erhalten: 1336
|
RE: Bit-Verschiebung
Genial, Danke euch. Kann ja dann geschlossen werden.
|
|
04.04.2013 21:38 |
|
|
|