Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Bitweise rotieren


eruhenon - Do 15.05.08 13:25
Titel: Bitweise rotieren
Moin!
Ich versuche derzeit ein "circular shift" umzusetzen. Jedoch habe ich nur shl und shr gefunden aber bei diesen wird ja immer eine 0 nachgeschoben. Eine Idee von mir war nun die Zahl in binär umzurechnen, einen String daraus zu machen und dann die ersten Stellen abzuschneiden und hinten dranzufügen, aber das ist doch wirklich umständlich. Gibt es von Delphi keinen einfacheren Weg das umzusetzen? Ich suche also sowas wie ROR oder ROL aus Asm.

Danke schonmla für die Hilfe!


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Do 15.05.2008 um 14:30


jaenicke - Do 15.05.08 13:39

Du kannst Assembler ja auch mit Hilfe des Schlüsselworts asm direkt verwenden ;-).


eruhenon - Do 15.05.08 13:51

edit:// ich habs nu so gelöst:


Delphi-Quelltext
1:
2:
3:
4:
5:
function ror(a,b:byte):byte;
asm
  ror a, b
  return a;
end;


danke!


uall@ogc - Do 15.05.08 16:17

wenn du ein byte hast und es in delphi machen willst:


Delphi-Quelltext
1:
b := (b shr 1or (b shl 7)                    


wenn ich mich net vertuhe :)