2 int werte in einen int wert Codevision

Gast #268446
Lesenswert?
• ▲
▼
Das Vorgehen von Irgwer und Fichte ist total an der Praxis vorbei.
Gehen wir von 32Bit für ein int aus.
Dann nimmt man am besten jeweils 16Bit für die zwei Zahlen.

Int16 zahl1, zahl2;
Int32 zahl3;

zahl1 = 5; // 0x05
zahl2 = 40; // 0x28

// zahl1 16Bit nach links schieben. untere 16Bit
/7 durch zahl2 ersetzen.
zahl3 = (zahl1 << 16) | zahl2; // zahl3 = 0x0528

Die Zahlen liegen jetzt sauber getrennt in zwei Registerhälften.

Gruß

Olaf
Gast #268448
Lesenswert?
• ▲
▼
Ich weiß leider nicht ob dieser code schneller läuft, oder nicht,
aber es sollte definierter sein was passiert

struct Tdint {char z1; charz2};
union Udint{int16 ges, Tdint einzeln};

Udint deineVariable;

Udint.einzeln.z1 = 5
Udint.einzeln.z2 = 9
int a = Udint.ges; // in a steht jetzt hx0509
ob man einzeln dazuschreiben muss oder nciht, weiß ich grad nicht.
aber das kann man sich ja in da doku zu union anschaun
Gast #268449
Lesenswert?
• ▲
▼
Nein so meinte ich das nicht das war nur ein beispiel.

Ich möchte gerne weg/zeit Rechnen die zeit habe ich im Format Stunde
Minute Sekunde alle werte sind Einzelln Aufgeführt nun muss ich ja
rechnen Zeit also zbs. 1:20 sind dann 120 und das dann noch mit dem weg
berechnen.

Rechnung:

       Durchschnitt=weg/zeit;
 bsp.  Durchschnitt=10/120;

MFG: Fichte
Gast #268450
Lesenswert?
• ▲
▼
Ok, wenn du mit zeiten rechnest geht das so nicht

du musst bedenken das 1h nicht gleich 100min sind
also musst dus umrechnen
zeit= min + h * 60;
dann hast du aber minuten. nachdem du zeit entweder in m/s oder in km/h
hast würde ich mir erst überlegen in was du rechnen willst.
wenn du int nimmst, wohl eher in m/s
also würde dein Durchschnitt sein
min=10;
h=0;
zeit = min * 60 + h * 3600;
weg = 1000;// Meter!
Durchschnitt = weg / zeit;
// Durchschnitt ist dann 100m/s
Gast #268451
Lesenswert?
• ▲
▼
Also die Km/h möchte ich rechnen diesen wert habe ich auch und ich habe
die Zeit nur das problem was ich hate war das ich Stunde und minute
nicht zusammen ziehen konnte aber so geht es wie du es beschrieben
hast.

zeit = min * 60 + h;
Durchschnitt = km / zeit;


MFG: Fichte

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.