¿Cómo puedo convertir dos enteros de 32 bits (int
) en un 64 bit long
y viceversa?Convierte long to two int y viceversa
Respuesta
Entrs a anhela:
long c = ((long)a << 32) | ((long)b & 0xFFFFFFFL);
lo dejo como ejercicio para el lector para realizar el cálculo inverso. Pero la pista es; use más cambios de bit y bit-masks.
¿Podría funcionar correctamente con 'b <0 ¿? –
@AleksG: ¡Buena captura! –
Creo que se puede suponer ya que es válido, dadas las circunstancias. – Tharwen
long c = (long)a << 32 | b & 0xFFFFFFFFL;
int aBack = (int)(c >> 32);
int bBack = (int)c;
En Java, no es necesario bastante tantos paréntesis, o cualquier enmascaramiento en el cálculo inverso.
Arrendatario: 'for (long i = Long.MIN_VALUE; i <= Long.MAX_VALUE; i ++) {...' –
292 años es mucho menos de lo que tomará. Mi computadora también dice 292 años, como todos los demás. Para mí '(stop - start) * 2.0/reps * Long.MAX_VALUE)' es 1.207154932183553E22, mientras que Long.MaxValue es 9223372036854775807, por lo que cuando el lanzamiento a '(largo)' ocurre, todos terminan con 9223372036854775807. Como eso es 1/1308 verdadero valor, el tiempo debería ser de 382,000 años. (Todavía +1, ya que la respuesta real es correcta) –
Jaja, muy agradable Richard. Tengo la costumbre de nunca hacer la conversión millis-to-something-else de forma manual, pero tampoco trato de obtener una resolución de milisegundos en cientos (o cientos de miles) de años. Como ya no soy un maestro, voy a editar todo el bit del "ejercicio". La respuesta no necesita ser tan larga. – Fuwjax
- 1. C++: long long int vs. long int vs. int64_t
- 2. C - Convierte long int a cadena hexadecimal firmado
- 3. Convierte BitSet a int
- 4. Java convertir int a hexadecimal y viceversa
- 5. ¿Cómo debo mapear long to int en hashCode()?
- 6. PHP convierte decimal a fracción y viceversa?
- 7. C# convierte entero a hexadecimal y viceversa
- 8. Java long to binary
- 9. Java long to Mysql
- 10. ¿GCC es compatible con long long int?
- 11. long int en PHP
- 12. ¿Cómo se maneja Python int y long?
- 13. 'long long int' se interpreta como 'long int'. ¿Cómo puedo evitar esto?
- 14. Pasando enteros a int y viceversa
- 15. impresión unsigned long long int Tipo Valor Devuelve resultados extraños
- 16. double double vs long int
- 17. ¿Puedo convertir long a int?
- 18. Convierte wchar_t en int
- 19. Convierte Char a Int
- 20. ¿Convierte cualquier registro en una cadena y viceversa?
- 21. Cómo el compilador convierte entero a cadena y viceversa
- 22. Biblioteca de Java que convierte latitud/longitud a coordenadas MGRS y viceversa?
- 23. Convierte IEnumerable <int> en int []
- 24. ¿Hay tipos más grandes que long long int en C++?
- 25. One Xcode project, Two targets, Two apps, Two Default.png files?
- 26. Cómo convertir long a int en .net?
- 27. C#: Cómo convertir long to ulong
- 28. ¿Está `int` por defecto` signed long int` en C++?
- 29. C# int to byte []
- 30. std :: streampos, std :: streamoff y std :: streamsize a long long int?
¿De qué manera desea convertirlos? Una posibilidad: (a << Integer.SIZE) | b –
¿Firmado o sin firmar? Si no está firmado, ¿qué significan los valores negativos? –
Posible duplicado de [Java almacenando dos ints en un largo] (https://stackoverflow.com/questions/12772939/java-storing-two-ints-in-a-long) – Vadzim