Byte aus Long entnehmen

Gast #5106904
Lesenswert?

Dieter B. schrieb:
> Ich muss sicher erstmal die Länge feststellen.

nein.

Was sollte denn bei 1234 rauskommen?

beschreibe doch mal etwas technischer was du willst. Vermutlich meinst 
du Ziffern im Dezimalsystem. Schreibt aber was von Byte und Long.

Byte aus eine Long ist etwas komplett anders.
Gast #5106921
Lesenswert?

Dieter B. schrieb:
> also ich habe eine variable im Long-Format.
> dort hinein wird eine Zahl z.B. 123   geschrieben.

Wie wird die reingeschrieben?
Als Dezimalzahl 123? Das wäre in Hex eine "7B".
Oder als 3 einzelne Bytes "1" "2" "3"?
Oder als ASCII? Dann wäre das "0x31" "0x32" "0x33"...

> Je nach meiner Rechenroutine brauche ich davon alle
> 3 Stellen, oder die ersten beiden, oder die erste Stelle.

Was macht deine "Rechenroutine"?

Du solltest ein wenig mehr ins Detail gehen, damit jemand eine Chance 
hat, dir zu helfen...
#5106931
Lesenswert?

Dieter B. schrieb:
> ich habe z.B. in der Variablen die Werte 123 und
> möchte die beiden ersten Bytes, also 12 entnehmen.

Dieter B. schrieb:
> also ich habe eine variable im Long-Format. ...
> Je nach meiner Rechenroutine brauche ich davon alle
> 3 Stellen, oder die ersten beiden, oder die erste Stelle.

Da haust du mit Sicherheit gewaltig was durcheinander!

Wenn du, z.B., von einer Dezimalzahl die ersten beiden Stellen haben 
willst, dann hat das mit Bytes gar nichts zu tuen. Und ob diese 
Dezimalzahl jetzt im Format long, float oder sonstwas vorliegt, spielt 
keine Rolle. Mit dem Dezimalsystem kennt sich so ein µC nämlich ganz 
schlecht aus. Deshalb musst du sowas ganz normal 'von Hand' ermitteln.

z.B.:
1
s9 = val / 1000000000
2
val = val % 1000000000
3
s8 = val / 100000000
4
val = val % 100000000
5
...
6
s0 = val
... und dann die Stellen 'je nach Rechenroutine' raussuchen.

Zusatz:
 - Vaiable s evtl als Array (in Basic heißt das, glaube ich, Feld)
 - '/' ganz normal 'durch'
 - '%' Rest ermitteln

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren