> Aber ich benötige, wie hier auch andere einträge wie z.B. 0-7, 8-15,
was wiederum ganze bytes sind, dazu wären dann Macros wie LoByte / HiByte nützlich...
natürlich ist es praktisch, ein einziges Macro zu haben,
aber das wird dann aufgrund der allgemeingültigkeit etwas langsamer als mehrere einzelne.
> Stimmt mein Macro überhaupt?
nicht ganz, hier hast du nen fehler:
((Size)*(Size)-1) << (Start))
x^2 -1 ist nicht dasselbe wie 2^x -1
...und eben grad geht mir auf, dass man den Pow-Aufruf bei mir garnicht bräuchte.
ein 2^x kann man auch mit nem bitshift hinbekommen.
Code: Alles auswählen
Macro GetBits(Value, Size, Start)
( ( (Value) >> (Start) ) & ((1 << (Size))-1) )
EndMacro
das dürfte dann noch etwas performanter sein....
natürlich bekommt man ne fehlermeldung, wenn einer der werte nicht integer ist,
und es kommt müll raus, wenn Size oder Start zu groß sind.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.