Consultas, desarrollo de programas y petición de presupuestos:

jueves, 12 de julio de 2012

Tipos de formatos para prinft() y scanf()


Para sistemas operativos 16 bits

%h short int (entero corto: 8 bits → 1 byte)
%c char
%u int unsigned (sin signo)
%s char *
%d int (entero: 16 bits → 2 bytes) (signed)
%o int (octal) (letra o), su objetivo es usarlo con enteros, pero en vez de base 10 en base 8, (se usa para permisos de archivos). Te escribe un numero con la letra inicial “o”
%ld long int (entero largo: 32 bits → 4 bytes)
%x int (hexadecimal) “cero x” (0x). Te presenta un numero entero convertiendolo en base hexadecimal te las pone en minisculas
%f float (32 bits → 4 bytes), con decimales.
%X int (hexadecimal) “cero x” (0x). Te presenta un numero entero convertiendolo en base hexadecimal te las pone en mayusculas las letras
%lf double=long float
%g decide por su cuenta si usa %f %e, dependiendo de la cantidad de cifras que tenga el numero.
%e doble con notación exponencial
%G decide por su cuenta si usa %lf %e, dependiendo de la cantidad de cifras que tenga el numero.




Ejemplo:


unsigned short int: valor minimo: 0 , valor maximo. 255 (el cero cuenta) 2⁸
signed short int: valor minimo: -128 , valor maximo. +127 (el cero cuenta y el signo tambien)
-128=2⁷ y +127=2⁷-1


Char ---- 8 bits ----- 1 byte


Short int---8 bits---- 1 byte, combinaciones que es igual.


El tipo short chart, no se puede, 0.5 bytes.


El que mas nos interesa es el long int, 32 bits.






El long float es llamado double (64 bits)


Nota Importante:
Segun el sistema operativo depende de lo que ocupa, para ello mejor usar la funcion sizeof(tipo), asi averiguamos cual es el tamaño en nuestro sistema.
Por ejemplo para Ubuntu 32 bits:
char 1
int 4
long 4
float 4
double 8

Formatos para los prinft y los scanf:
Entre el % y la letra puede haber cosas, basicamente números. Ejemplo:

printf(“%7d”,num);

Te lo representa en un hueco de 7 caracteres. Si es de 3 cifras, muestra 4 espacios en blanco y las 3 cifras. (alineación a la derecha).

Alineado “al otro lado” (en este caso izquierda, por ser numero) seria:
printf(“%-7d”,num);

Tambien podemos poner:
%07d → seria poner 7 cifras alineado a la derecha, lo rellenara con ceros, los espacios vacios.

Con cadenas:
%s: alineada a la izquierda (por defecto el texto se alinea a la izquierda)
%48s: alineada a la izquierda rellenada a de espacios blancos
%-48s: alineada al lado contratio del por defecto (a la derecha) rellena de espacios en blancos.

Decimales:
%4.2f: presenta un numero float, representado en 4 cifras, de las cuales 2 son decimales, y una cifra de la parte entera se la come el punto: Presentararia: 1.99

Nota: Si la cifra es mayor, no hace caso al formato.

Ejemplo:
%07.2f: presentaria 7 cifras: 2 para decimales, 1 para el punto y 4 para la parte entera, si sobra rellena con ceros.

%-7,2f: presentaria 7 cifras: 2 para decimales, 1 para el punto y 4 para la parte entera, si sobra rellena con ceros.Pero alineado el numero a la izquierda.


Nota:
En el scanf, seria valido, pero si pones %7d, el scan espera que metas 7 cifras, si pones menos se queda esperando, y pones mas, te la “lia parda”, ya que lo recogera el siguiente scanf de encuentre el programa. Osea que mejor no es poner %numero.

No hay comentarios:

Publicar un comentario