Forum: Compiler & IDEs Bitweise Operationen


von Dave (Gast)


Lesenswert?

Hallo,

kurze Frage. Stimmt folgender Ausdruck?

(0x68<<1)+1 = 0xD1

Danke

von egbert (Gast)


Lesenswert?

Bist Du nichtmal in der Lage, das mit einem wissenschaftlichen 
Taschenrechner - notfalls dem bei Windows eingebauten - nachzurechnen?

Traurig.

von Bernd S. (bernds1)


Lesenswert?

Dave schrieb:
> Hallo,
>
> kurze Frage. Stimmt folgender Ausdruck?
>
> (0x68<<1)+1 = 0xD1
>
> Danke

0x68:
0110 1000
<<1
1101 0000 -> 0xD0
+1
1101 0001 -> 0xD1

Stimmt also :-)

von Dave (Gast)


Lesenswert?

Traurig ist deine Antwort! Natürlich kann ich das mit einen 
Taschenrechner umrechnen. Es ging mir lediglich um den Operator << und 
ob ich dessen Funktion richtig verstanden habe. Und dieser befindet sich 
nicht auf meinen TR. Wenn es dir kein Anliegen ist anderen Menschen auf 
die Sprünge zu helfen, dann mach dir doch gar nicht erst die Mühe zu 
antworten. Danke aber trotzdem für den \underline{Versuch} zu einer 
kompetenten Antwort.

von Dave (Gast)


Lesenswert?

Danke Bernd :)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Dave schrieb:
> Und dieser befindet sich
> nicht auf meinen TR.

Das ist eine Multiplikation mit 2. Die sollte Dein Taschenrechner 
hinbekommen.

von Elias 1. (alajas)


Lesenswert?

diese Antwort war sehr Hilfreich....hab das nachgerechnet

BIN (1111 1111) = DEZ (255)
wird 255 x 2 = 510
DEZ(510) = BIN (1 1111 1110)

aber woher weis der uC dann das er die letzte 1 abschneiden muss?
Damit das Ergebnis 1111 1110 ist?

Ich vermute mal da ich mit 0xFF dem uC sage die Variabel ist nur 2Bit 
groß.
Da der Wert 510 3 Bits benötigt schneidet er die v.l. gesehene 1 einfach 
weg.

von Karl H. (kbuchegg)


Lesenswert?

Elias 1234 schrieb:
> diese Antwort war sehr Hilfreich....hab das nachgerechnet
>
> BIN (1111 1111) = DEZ (255)
> wird 255 x 2 = 510
> DEZ(510) = BIN (1 1111 1110)
>
> aber woher weis der uC dann das er die letzte 1 abschneiden muss?

Was heisst 'muss'?

Wenn kein Platz dafür vorhanden ist, dann bleibt keine andere Wahl. Wenn 
in dein Bücherregal nur 8 Bücher passen, du aber 9 hast, dann musst du 
eines wegwerfen. Selbst wenn es noch so schmerzt. Trags wie ein Mann :-)

> Ich vermute mal da ich mit 0xFF dem uC sage die Variabel ist nur 2Bit
> groß.

8 bitte.
Ein Byte hat 8 Bit.

von M. K. (sylaina)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Das ist eine Multiplikation mit 2. Die sollte Dein Taschenrechner
> hinbekommen.

Öhm, wie der Dave schon schrieb war er sich nicht sicher, ob er den 
Operator << richtig interpretiert hat. ;)

Elias 1234 schrieb:
> aber woher weis der uC dann das er die letzte 1 abschneiden muss?
> Damit das Ergebnis 1111 1110 ist?

Wieso muss er das letzte Zeichen abschneiden? Du willst doch 2*255 
rechnen. In 8 bit gibt das aber 254 und nicht 510. Da läuft was bei über 
;)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.