Page 362

A.2 Flotantes

A.1.2.

Literales

Puedes escribir n´ umeros enteros en notaci´on octal (base 8) o hexadecimal (base 16). Un n´ umero en notaci´ on hexadecimal empieza por 0x. Por ejemplo, 0xff es 255 y 0x0 es 0. Un n´ umero en notaci´on octal debe empezar por un 0 y no ir seguido de una x. Por ejemplo, 077 es 63 y 010 es 8.1 Puedes precisar que un n´ umero entero es largo a˜ nadi´endole el sufijo L (por ((Long))). Por ejemplo, 2L es el valor 2 codificado con 32 bits. El sufijo LL (por ((long long))) indica que el n´ umero es un long long int. El literal 2LL, por ejemplo, representa al n´ umero entero 2 codificado con 64 bits (lo que ocupa un long long int). El sufijo U (combinado opcionalmente con L o LL) precisa que un n´ umero no tiene signo (la U por ((unsigned))). Normalmente no necesitar´ as usar esos sufijos, pues C hace conversiones autom´aticas de tipo cuando conviene. S´ı te har´ a falta si quieres denotar un n´ umero mayor que 2147483647 (o menor que −2147483648), pues en tal caso el n´ umero no puede representarse como un simple int. Por ejemplo, la forma correcta de referirse a 3000000000 es con el literal 3000000000LL. C resulta abrumador por la gran cantidad de posibilidades que ofrece. Son muchas formas diferentes de representar enteros, ¿verdad? No te preocupes, s´olo en aplicaciones muy concretas necesitar´ as utilizar la notaci´ on octal o hexadecimal o tendr´as que a˜ nadir el sufijo a un literal para indicar su tipo.

A.1.3.

Marcas de formato

Hay una marca de formato para la impresi´on o lectura de valores de cada tipo de entero: Tipo

Marca

Tipo

Marca

char (n´ umero) short int long long long

%hhd %hd %d %ld %lld

unsigned char unsigned short unsigned unsigned long unsigned long long

%hhu %hu %u %lu %llu

Puedes mostrar los valores num´ericos en base octal o hexadecimal sustituyendo la d (o la u) por una o o una x, respectivamente. Por ejemplo, %lx es una marca que muestra un entero largo en hexadecimal y %ho muestra un short en octal. Son muchas, ¿verdad? La que usar´as m´as frecuentemente es %d. De todos modos, por si necesitas utilizar otras, he aqu´ı algunas reglas mnemot´ecnicas: d significa ((decimal)) y alude a la base en que se representa la informaci´on: base 10. Por otra parte, x y o representan a ((hexadecimal)) y ((octal)) y aluden a las bases 16 y 8. u significa ((unsigned)), es decir, ((sin signo)). h significa ((mitad)) (por ((half))), as´ı que %hd es ((la mitad)) de un entero, o sea, un short, y %hhd es ((la mitad de la mitad)) de un entero, o sea, un char. l significa ((largo)) (por ((long))), as´ı que %ld es un entero largo (un long) y %lld es un entero extra-largo (un long long).

A.2.

Flotantes

A.2.1.

Tipos

Tambi´en en el caso de los flotantes tenemos d´onde elegir: hay tres tipos diferentes. En esta tabla te mostramos el nombre, m´ aximo valor absoluto y n´ umero de bits de cada uno de ellos: Tipo float double long double

M´ aximo valor absoluto

Bytes 38

3.40282347·10 1.7976931348623157·10308 1.189731495357231765021263853031·104932

4 8 12

1 Lo cierto es que tambi´ en puede usar notaci´ on octal o hexadecimal en Python, aunque en su momento no lo contamos.

356

Introducci´ on a la Programaci´ on con C

Profile for esLibre.com

Introducción a la programación con c  

Introducción a la programación con c  

Advertisement