SHR SHL aber die Bits nicht wegfallemn lassen
Übersicht

hamztataBetreff: SHR SHL aber die Bits nicht wegfallemn lassen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Würde gern die bits sozusagen rotieren lassen.
Also das was verschoben wird nicht abschneiden und wegfallen lassen, sondern am anderen ende dranhängen. ist das möglich? |
||
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
dazu müsstest du dir eine eigene Funktion erstellen.
Aber wie willst du das Umsetzen? An der anderen Seite ranhängen ist ja nur möglich, wenn definiert ist, wieviel bits es gibt. Wenn du bei einem INT ganz links ne 1 hinsetzt hast du dann ausserdem eine negative zahl. Grüße, Smily |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] if zahl mod 2=1 ;zahl durch 2 teilbar
zahl=zahl shr 1 zahl=zahl And (1 shl 31) endif Zum Beispiel. 1 shl 31 ist dabei die maximale Position: eine 1 an der 1. Stelle. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Function ROL(var,shifts=1) ;ROtate Left
Local ergebnis Local carry For j= 1 To shifts For i = 31 To 0 Step -1 shift = 2^i bit = (var And shift) Shr (i) If bit Then If i = 31 Then carry = True Else ergebnis = ergebnis Or 2^(i+1) EndIf EndIf Next If carry Then ergebnis = ergebnis Or 1 carry = False var = ergebnis ergebnis=0 Next Return var End Function Function ROR(var,shifts=1) ;ROtate Right Local ergebnis Local carry For j= 1 To shifts For i = 0 To 31 shift = 2^i bit = (var And shift) Shr (i) If bit Then If i = 0 Then carry = True Else ergebnis = ergebnis Or 2^(i-1) EndIf EndIf Next If carry Then ergebnis = ergebnis Or 2^31 carry = False var = ergebnis ergebnis=0 Next Return var End Function Print Bin(-20) Print Bin(ROL(-20,2)) Print Bin(ROR(-20)) WaitKey() Bitteschön, ROL und ROR |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
hamztata |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke danke danke sehr, aber ich kau noch am signed SHR und SHL Nachbau. | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vorzeichenerhaltende Rotation ist genau dasselbe wie ROR und ROL, nur dass Du das Vorzeichenbit (2^31) nicht mitverschiebst sondern einfach beibehältst.
Sollte mit meiner Vorlage binnen 2 Minuten zu basteln sein. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
hamztata |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke für die nette antwort.
ich werds morgen mal versuchen, ich steig da nämlich heut nicht mehr durch. im anderen thread hab ichs ja theoretisch verstanden wie es funktionieren muss, nur an der umsetzung hapert es. naja ich werd mich erstmal hinlegen, morgen ist auch noch ein tag. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group