Как преобразовать два 32-битных целых числа (int
) в один бит 64 бит long
и наоборот?Преобразование long в два int и наоборот
ответ
Ints к тоскует:
long c = ((long)a << 32) | ((long)b & 0xFFFFFFFL);
Я оставлю его в качестве упражнения для читателя, чтобы выполнить обратный расчет. Но это намек; используйте больше бит-сдвигов и bit-masks.
Если это правильно работает с 'b <0 '? –
@AleksG: Хорошая добыча! –
Я думаю, что b вполне может считаться действительным, учитывая обстоятельства. – Tharwen
long c = (long)a << 32 | b & 0xFFFFFFFFL;
int aBack = (int)(c >> 32);
int bBack = (int)c;
В Java вам не нужно столько скобок или любой маскировки при обратном вычислении.
Арендатор: 'for (long i = Long.MIN_VALUE; i <= Long.MAX_VALUE; i ++) {...' –
292 года намного меньше, чем потребуется. Мой компьютер также утверждает, что 292 года, как и все elses. Для меня '(stop-start) * 2.0/reps * Long.MAX_VALUE)' равно 1.207154932183553E22, а Long.MaxValue - 9223372036854775807, поэтому, когда приведение к '(длинному)' происходит, все заканчиваются 9223372036854775807. Поскольку это 1/1308-й, истинное значение времени должно составлять 382 000 лет. (Все еще +1, хотя с момента правильного ответа) –
Ха-ха, очень хороший Ричард. У меня есть привычка никогда не делать преобразование millis-to-something-else вручную, но я также редко пытаюсь получить разрешение в миллисекундах на сотни (или сотни тысяч) лет. Поскольку я уже не учитель, я просто отредактирую весь бит упражнения. Ответ не должен быть таким долгим. – Fuwjax
- 1. Преобразование long int * в long long int *
- 2. преобразование из int в long long
- 3. Преобразование структуры в int и наоборот
- 4. Преобразование битмапа в int [,] и наоборот
- 5. Как преобразование long long в int работает?
- 6. Преобразование long int в wxString
- 7. Почему неявное преобразование int в long long int дает неожиданный ответ на C++?
- 8. C++ Преобразование Int к * LONG
- 9. Преобразование long в int в Java
- 10. Преобразование long int в строку в PHP
- 11. Преобразование строки в unsigned long long int в C
- 12. Преобразование long int в const time_t
- 13. преобразование из unsigned long long в unsigned int
- 14. Преобразование в long long int in C с использованием strtoull()
- 15. C++: преобразовать unsigned long long int в вектор <char> и наоборот
- 16. Преобразование списка long int в ints
- 17. Преобразование строки юникода в int или long
- 18. Преобразование строки в шестнадцатеричную и наоборот наоборот
- 19. преобразование буквенно-цифровой строки в int и наоборот в python
- 20. В чем разница между «длинными» и «длинными int» и «long long» против «long long int»
- 21. Преобразование значения int в 3-байтовый массив (и наоборот)
- 22. Что означает преобразование int в void * или наоборот?
- 23. unsigned long long int
- 24. Ошибка: неверное преобразование из 'int (*)()' в 'long unsigned int'
- 25. Преобразование объекта Java в Json и наоборот?
- 26. Как отличить int и long?
- 27. C++: long long int vs. long int vs. int64_t
- 28. Unsigned long long int to long double
- 29. Arduino long long int doc
- 30. Преобразование подписи под Unsigned и наоборот
Каким способом вам нужно их преобразовать? Одна возможность: (a << Integer.SIZE) | b –
Подписанный или неподписанный? Если без знака, то что означают отрицательные значения? –
Возможный дубликат [Java хранения двух целых чисел в длинном] (https://stackoverflow.com/questions/12772939/java-storing-two-ints-in-a-long) – Vadzim