Hallo Leute,
ich brauche immer noch Hilfe bei der Auflösung der Gruppenadressen!
In VB:
Quelltext
1: 2: 3:
| GA1 = (GroupAddr And &HF800) / (2 ^ 11) GA2 = (GroupAddr And &H700) / (2 ^ 8) GA3 = (GroupAddr And &HFF) |
Bisher in Delphi
Quelltext
1: 2: 3:
| GA1 := (GroupAddr And StrToInt('$' + 'F800') GA2 := (GroupAddr And StrToInt('$' + 'F700') GA3 := (GroupAddr And StrToInt('$' + 'FF') |
Im VB Code steht 2^11. Damit werden typischerweise Bitpositionen beschrieben:
2^0 = 1 = &H1, niederwertigstes Bit
2^1 = 2 = &H2
2^10 = 1024 = &H400
2^20 = 1024*1024 = 1048576 = &H100000
2^31 = 2147483648 = &H80000000, höchstwertiges Bit
etc.
Quelltext
1: 2: 3:
| GA1 = (GroupAddr And &HF800) / (2 ^ 11) GA2 = (GroupAddr And &H700) / (2 ^ 8) GA3 = (GroupAddr And &HFF) |
GA1: Es wird ein Teil der GroupAddr maskiert. Hier die 5 höchstwertigen Bits eines Wortes (16 Bit) und diese um 11 bit nach rechts geschoben. Man könnte sagen rechtsbündig ausgerichtet.
GA2: Es werden 3 Bit unterhalb GA1 maskiert und um 8 Bit nach rechts geschoben.
GA3: Es werden die restlichen 8 Bit maskiert, die müssen nicht mehr geschoben werden, da sie schon rechtsbündig sind.
Man hat also hier 16 Bit, die folgendermaßen aufgebaut sind:
|- höchstwertiges Bit --> niederwertigstes Bit
54321 098 76543210
GA1 GA2 GA3
Aber wie mache ich soetwas in Delphi?!
Bin jetzt endgültig am Ende meiner Fähigkeiten...
Gruß
Thomas