Ich versuche mich gerade daran die beiden Datentypen Single und Integer in Bytes zu zerlegen, damit ich diese auf einen EEPROM speichern kann. Das Ganze mache ich in Bascom. Die Zerlegung eines Integers in zwei Bytes war kein Problem: In Low und Highanteile aufspalten. Diese 2 Bytes abspeichern, als Bytes wieder auslesen und anschließend mit High*256+Low wieder zum Integer zusammensetzen. Wie aber geht das bei einem Single? Das Komma kann an einer beliebigen Stelle liegen und somit würde ein Aufspalten mit Frac oder Int nicht viel bringen, da somit die Präzision sinken würde. Ich möchte aber verlustfrei konvertieren. Hat einer eine Idee oder eine Lösung?
Hi, ich habe eine Idee. Das müsste mit Overlayvariablen gehen. Also Dim S as single Dim S_1 as byte at +1 s overlay Dim S_2 as byte at +2 s overlay Dim S_3 as byte at +3 s overlay Dim S_4 as byte at +4 s overlay Dabei ist dan S der Single und S_1 bis S_4 sind die 4 Bytes des Singles. Aber ich weiß jetzt nicht ob das vom Syntax her richtig ist, da müsstest du nochmal in die Hilfe schauen. MfG
> Aber ich weiß jetzt nicht ob das vom Syntax her richtig ist, da müsstest > du nochmal in die Hilfe schauen. An eine solche Vorgehensweise hatte ich auch gedacht: Die Frage ist nur wie lautet der korrekte Syntax? Ich habe es mal mit
1 | dim Sbyte[4] as byte |
2 | dim Single_zahl as single at SByte overlay |
probiert. Leider wird das vom Compiler nicht akzeptiert. Oder war das anders gemeint?
Es sind runde und keine eckigen Klammern - mmmmhhhh Also:
1 | dim Sbyte(4) as byte |
2 | dim Single_zahl as single at SByte overlay |
Jetzt mal schauen, was ich damit anfangen kann - also wie ich es wieder zusammensetze.
so ist es natürlich viel einfacher. Das zusammensetzen ist genauso einfach. Du schreibst einfach die 4 Bytes in Sbyte und fertig. ;)
Bauteiltöter wrote: > so ist es natürlich viel einfacher. > Das zusammensetzen ist genauso einfach. Du schreibst einfach die 4 Bytes > in Sbyte und fertig. ;) Vielen Dank. Problem vollständig gelöst - was da war ein Problem ;-) also genau wie beschrieben bin ich vorgegangen:
1 | Sbyte(1)=s1 |
2 | Sbyte(2)=s2 |
3 | Sbyte(3)=s3 |
4 | Sbyte(4)=s4 |
wobei s1 bis s4 Variablen vom Typ byte sind. Diese verändern dann die eigentliche Variable Single_zahl.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.