Ansistring to Array / IntToBin()
-
Hi,
ich habe ein Problem. Ich habe mit der Funktion IntToBin() von der Indylib mir eine Integer Var in Binärcode umwandeln lassen. Das Problem ist das folgende formatierung dabei rauskommt
Integer: 255
Bin: 0000000000000000011111111die war in der der binärcode steht ist im Format AnsiString. Gibt es eine möglichkeit die letzten 8 zeichen (im beispiel die einsen) in ein auszufiltern und diese in ein array zu schreiben? (jede 1 in ein array)zB.
das ich nachher folgende vars habe:
x[0] = 1 <- Dies ist der Wert der 8. Stelle des AnsiStrings von rechts
x[1] = 1 <- Dies ist der Wert der 7. Stelle des AnsiStrings von rechts
x[2] = 1 <- Dies ist der Wert der 6. Stelle des AnsiStrings von rechts
x[3] = 1 <- Dies ist der Wert der 5. Stelle des AnsiStrings von rechts
x[4] = 1 <- Dies ist der Wert der 4. Stelle des AnsiStrings von rechts
x[5] = 1 <- Dies ist der Wert der 3. Stelle des AnsiStrings von rechts
x[6] = 1 <- Dies ist der Wert der 2. Stelle des AnsiStrings von rechts
x[7] = 1 <- Dies ist der Wert der 1. Stelle des AnsiStrings von rechtsOder kennt wer vielleicht direkt ne möglichkeit eine Int zahl in Binär umzuwandeln, diese dann zu splitten und die inhalte in ein array zu schreiben?
Vielleicht kennt jemand das Problem?
Gruß Fraxs
-
Laß doch die Umwandlung in AnsiString weg und vergleiche bitweise mit "&".
U.U. noch mit Shift ("<<", ">>")Gruß,
Alexander
-
Hallo fraxs,
nachstehend ein Beispiel für ein Byte dass du jederzeit auch auf int erweitern kannst
Evi48
const byte BITTEST[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; for(iBit = 0; iBit < 8; iBit++) { if((Funk1Tel->DataByte[iByte] & BITTEST[iBit]) == BITTEST[iBit]) cCahr[iBit] = "1"; else cCahr[iBit] = "0"; }
-
Kann mir Bitte jemand sagen, welche Unit ich einbinden muss um IntToBin() benutzen zu können??
-
Hallo
IntToBin() ist wohl eine selbstgeschriebene Funktion. In BCB 5 ist die jedenfalls nicht dabei.
/Edit : die Quelle steht doch im ersten Post :
Ich habe mit der Funktion IntToBin() von der Indylib
bis bald
akari
-
Wobei mit "Indylib" die Indy-Komponentensammlung gemeint ist.
In der Version 9.x gibt es m.E. aber keine solche Funktion, ggf. bezog sich der ursprüngliche Beitrag auf die beim BCB6 mitgelieferte Version 8.
-
Danke! Aber ich bin zu dem Schluss gekommen, dass Shiften die bessere Lösung ist.