- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 13

Thema: PHP/RPi: 64 bit int-String auf 32bit-Hardware berechnen

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.669
    Hallo!

    Der Wert, den Du von smartctl als String bekommst, wie kommst Du an den Wert? Automatisch? Oder nur manuell? Was ist das genau für ein Wert, Sekunden, Stunden, Minuten? Und was möchtest Du daraus haben, Stunden, Minuten, Sekunden?

    Alles, was man mit einem Computersystem mathematisch nicht verarbeiten kann, weil der Wertebereich mit der vorhandenen Bitbreite nicht abgebildet werden kann, muss mathematisch so zerlegt werden, dass man damit arbeiten kann. Wie auch immer. Dabei ist auch das Ziel interessant. Zum Beispiel wegen der Genauigkeit. Sobald nur eine Manuelle Eingabe (oder eben ein String) vorhanden ist, muss der dann analysiert und sinnvoll zerlegt werden. Deswegen oben meine Fragen. Ich verstehe das nämlich noch nicht, was genau von was in was umgewandelt werden sollte. Man kann auch Hex-Werte, die als String vorliegen, zerlegen und umwandeln.
    Ich habe leider in PHP auch erst einmal keine Funktion gefunden, welche die Arbeit abnehmen könnte. Deswegen gehe ich in solchen Fällen den mühseligeren Weg, der aber irgendwie immer funktioniert.

    (0x000200000002, 8589934594)
    Die unteren 32 bit sind 2, d.h. die Platte hätte 2 Stunden hinter sich.
    Aber nur aus den letzten Stellen der Dezimalzahl (934594) komm ich da nie auf die tatsächliche Laufzeit.


    Was ist mit dem Hex-Wert -
    0x000200000002 ? Ist das der originale Wert, wie er sein soll, weil die letzte "2" 2 Stunden representiert? Und Du bekommst aber nicht den Hex-Wert, sondern nur den entsprechenden Wert in Dezimalschreibweise und das als String?


    Das wäre ja nur ne Alternative zu $a = (int) substr($val, -6);
    Den String so zerschneiden geht ja, solange diese Zahl kleiner als 0x7FFFFFFF ist.


    Ja. Wird die Zahl größer muss die Rechnung dann zerlegt werden. In einen höherwertigen Teil und einen niederwertigen Teil. So, wie bei 0x1234. Ist ja eigentlich ein 16 Bit-Wert. Angenommen, deine CPU kann aber nur 8 Bit. Dann kann man das zerlegen in 0x12 und 0x34. Mit diesen beiden Teilen kann man weiter rechnen, th. beliebig große Zahlen.


    Geändert von Moppi (11.10.2021 um 15:55 Uhr)

Ähnliche Themen

  1. 32Bit Zahl in BCD umwandeln
    Von rogerberglen im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 9
    Letzter Beitrag: 30.01.2013, 18:01
  2. 32bit Multiplizierer - Was bedeutet die 32?
    Von Asuroneuling im Forum Elektronik
    Antworten: 9
    Letzter Beitrag: 11.02.2010, 11:33
  3. string an lcd senden, string in pointer speichern
    Von andi.studi im Forum PIC Controller
    Antworten: 15
    Letzter Beitrag: 13.08.2008, 23:51
  4. 32bit Schieberegister Ansteuerung...Wo ist der Fehler?
    Von KonZ im Forum C - Programmierung (GCC u.a.)
    Antworten: 6
    Letzter Beitrag: 21.09.2007, 08:27
  5. String auf String zuweisen geht nicht
    Von Jaecko im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 14.12.2006, 17:48

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen