Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
curso-cpp:mas-tipos [2017/11/26 22:23] santo [Tipo de una literal entero] |
curso-cpp:mas-tipos [2017/11/26 22:39] guty [Tipo de un literal entero] |
||
---|---|---|---|
Línea 53: | Línea 53: | ||
Similar problema tendremos si hacemos ''long long x = y + z'', siendo tanto ''y'' como ''z'' variables de tipo ''int''. Podemos solucionarlo **convirtiendo** una de ellas a ''long long'': ''long long x = y + (long long)(z)'', de forma análoga a lo que hacíamos con el ''LL'' para los literales enteros. | Similar problema tendremos si hacemos ''long long x = y + z'', siendo tanto ''y'' como ''z'' variables de tipo ''int''. Podemos solucionarlo **convirtiendo** una de ellas a ''long long'': ''long long x = y + (long long)(z)'', de forma análoga a lo que hacíamos con el ''LL'' para los literales enteros. | ||
- | **El caso más común** donde esto ocurre es en la expresión: ''1 << i'' (que es común si se trabaja con [[cpp-avanzado:bitmask|máscaras de bits]] de 64 bits): El resultado de esta operación será de tipo ''int'', que no es lo que queremos si estamos trabajando valores de 64 bits. ''1LL << i'' resuelve por completo este problema. | + | **El caso más común** donde esto ocurre es en la expresión: ''1 << i'' (que es común si se trabaja con [[cpp-avanzado:operaciones-de-bits|operaciones de bits]] con números de 64 bits): El resultado de esta operación será de tipo ''int'', que no es lo que queremos si estamos trabajando valores de 64 bits. ''1LL << i'' resuelve por completo este problema. |
===== Reglas prácticas para el manejo de tipos enteros ===== | ===== Reglas prácticas para el manejo de tipos enteros ===== |