Jak przekonwertować dwie 32-bitowe liczby całkowite (int
) na jedną 64-bitową long
i na odwrót?Konwertuj z długiej na dwie wartości int i na odwrót
Odpowiedz
Ints do tęskni:
long c = ((long)a << 32) | ((long)b & 0xFFFFFFFL);
Zostawiam to jako ćwiczenie dla czytelnika do wykonania odwrotnego obliczenia. Ale wskazówka jest; użyj więcej przesunięć bitowych i bit-masks.
Czy to działa poprawnie z 'b <0 '? –
@AleksG: Dobry haczyk! –
Myślę, że b może już być uznane za ważne, biorąc pod uwagę okoliczności. – Tharwen
long c = (long)a << 32 | b & 0xFFFFFFFFL;
int aBack = (int)(c >> 32);
int bBack = (int)c;
W języku Java nie trzeba mieć aż tylu nawiasów ani żadnego maskowania na odwrotnej kalkulacji.
Najemca: 'dla (długi i = długi.MIN_VALUE; i <= długi.MAX_VALUE; i ++) {...' –
292 lata to o wiele mniej, niż zajmie to. Mój komputer również roszczą sobie 292 lata, podobnie jak wszyscy inni. Dla mnie '(stop - start) * 2.0/reps * Long.MAX_VALUE)' to 1.207154932183553E22, natomiast Long.MaxValue to 9223372036854775807, więc gdy rzutowanie na '(długie)' zdarza się, każdy kończy na 9223372036854775807. Jako że jest to 1/1308 prawdziwa wartość, czas powinien wynosić 382 000 lat. (Nadal +1, ale ponieważ aktualna odpowiedź jest poprawna) –
Haha, bardzo miły Richard. Mam zwyczaj nigdy nie wykonywać ręcznie konwersji milis-to-something-else, ale rzadko staram się uzyskać milisekundową rozdzielczość na setki (lub setki tysięcy) lat. Ponieważ nie jestem już nauczycielem, po prostu edytuję cały "ćwiczeniowy" bit. Odpowiedź nie musi być tak długa. – Fuwjax
- 1. Konwertuj piksele na cale i na odwrót w C#
- 2. Konwertuj Char na Int
- 3. Haskell Konwertuj Integer na Int?
- 4. Konwertuj ciąg szesnastkowy na int
- 5. Konwertuj ciąg na Int bez int()
- 6. Stan z Macierzy podstawowej i na odwrót:
- 7. Konwertuj IEnumerable <int> na int []
- 8. Konwertuj znak A-Z na odpowiadający int.
- 9. Konwertuj int na BigDecimal z dziesiętną - Java
- 10. Konwertuj int na const wchar_t *
- 11. Przechowywanie i pobieranie niepodpisanej długiej wartości długiej do/z NSString
- 12. Konwertuj datę i godzinę na GMT i na odwrót w PHP .....?
- 13. Xcode iOS: Konwertuj int na NSString
- 14. Moment JS - parsuj UTC i konwertuj na lokalny i na odwrót.
- 15. Konwertuj ciąg na tablicę int używając LINQ
- 16. Konwertuj ciąg na int-celny c
- 17. Konwertuj numer w tekście tekstowym na int
- 18. concat dwie wartości int w postgresql
- 19. Konwertuj wycinek łańcucha na int w Rust
- 20. Konwertuj int na tablicę bajtów w C?
- 21. Konwertuj listę ciągów na listę int
- 22. Konwertuj tablicę int na tablicę znaków
- 23. Python przekonwertuj na ciąg znaków i na odwrót:
- 24. jak skopiować znak * na ciąg znaków i na odwrót:
- 25. Konwertowanie wartości Eval z int na string
- 26. Konwertuj [IO Int] na IO [Int] w Haskell?
- 27. Konwertuj binarną reprezentację liczby z ciągu znaków na int -Javascript
- 28. Konwertuj wartości RGBA na kod koloru szesnastkowego
- 29. Jak przekonwertować Joda-Time DateTime na java.util.Date i na odwrót?
- 30. Dlaczego ktoś chciałby użyć ruby na pytonie i na odwrót?
W jaki sposób chcesz je przekonwertować? Jedna z możliwości: (a << Integer.SIZE) | b –
Podpisano lub podpisano? Jeśli bez znaku, to co oznaczałoby wartości ujemne? –
Prawdopodobny duplikat [Java przechowujący dwa ints w długim] (https://stackoverflow.com/questions/12772939/java-storing-two-ints-in-a-long) – Vadzim