Ho un output da un'applicazione (C++) che memorizza un valore tickcount in un tipo che termina a zero a 2 . (8,589,934,592) (Non avere il codice)Simulazione di un numero senza segno con una potenza pari a due max in java
Ho bisogno di scrivere la mia uscita nello stesso modo. Recupero il tickcount da una C lib attraverso JNA, ma se lo memorizzo in un int questo si estende a -2 (-2,147,483,648) dopo un tickcount di ~ 25 giorni e se lo immagazzino in un lungo periodo continua ad andare oltre 2 .
Come è possibile archiviare (o scrivere) il valore in Java in modo tale da estenderlo (a zero) in 2 ?
(preferibilmente un JRE7- & JRE8- su Win32 & Win64- soluzione Linux compatibile-&)
Per ottenere il TickCount Io uso il seguente:
import com.sun.jna.*;
public interface Kernel32 extends Library {
Kernel32 INSTANCE = (Kernel32) Native.loadLibrary((Platform.isWindows() ? "kernel32" : "c"), Kernel32.class);
/**
* Retrieves the number of milliseconds that have elapsed since the system was started.
*
* @return number of milliseconds that have elapsed since the system was started.
* @see http://msdn2.microsoft.com/en-us/library/ms724408.aspx
*/
Long GetTickCount();
}
public interface Clib extends Library {
Clib INSTANCE = (Clib) Native.loadLibrary((Platform.isWindows() ? "kernel32" : "c"), Clib.class);
/**
* Retrieves the number of milliseconds that have elapsed since the system was started.
*
* @return number of milliseconds that have elapsed since the system was started.
*/
Long clock();
}
// And later
Number n = (Platform.isWindows() ? Kernel32.INSTANCE.GetTickCount() : Clib.INSTANCE.clock()).toString());
questo finirà comunque per overflow – ControlAltDel
@ControlAltDel non se lo fa dopo ogni incremento. – RealSkeptic
@ControlAltDel Dovrebbe traboccare. Non è questo il punto? – Boann