Mein Titel kann nicht sehr hilfreich sein, ich habe eine Std :: Chrono :: Nanosekunde, aber ich bin gebeten, die zweite und dann die Nanosekunde als andere Werte zu serialisieren in einem JSON.Std :: Chrono berechnen den Unterschied in verschiedenen Verhältnis
Und obwohl meine Struktur gilt:
struct time
{
...
std::chrono::nanoseconds timepoint;
};
wenn für Sekunden fragte ich
uint32_t sec() const
{
return std::chrono::duration_cast<std::chrono::seconds>(timepoint_).count();
}
noch, wenn für ns gefragt, möchte ich die Auflösung in Nanosekunden, aber ohne die Sekunden (nur die niedrigstwertigen Werte?), wirft jedoch in Nanosekunden sowohl die Sekunden als auch die höhere Auflösung zurück.
uint64_t nanosec() const
{
return std::chrono::duration_cast<std::chrono::nanoseconds>(timepoint_).count();
}
Wie kann ich die tatsächlich erhöhte Auflösung berechnen (z. B. die Nanosekunden ohne die tatsächlichen Sekunden)?
Versuchen Sie zuerst, den Sekunden-Zeitpunkt zu nehmen (Ergebnis der Umwandlung vor dem Aufruf von '.count()'), und subtrahieren Sie ihn dann vom aktuellen Zeitpunkt. Der resultierende Zeitpunkt sollte nur die "übrig gebliebenen" Nanosekunden haben. – Xarn
Würde Modding um 1 Milliarde ausreichen? – DeathTails
@Xarn Ich bin ein wenig verwirrt, könnten Sie bitte ein Beispiel geben? –