Essays.club - Ensayos gratis, notas de cursos, notas de libros, tareas, monografías y trabajos de investigación
Buscar

La sentencia condicional - más condicionada que antes

Enviado por   •  21 de Diciembre de 2018  •  2.851 Palabras (12 Páginas)  •  247 Visitas

Página 1 de 12

...

- no necesitamos tales valores grandes; si contamos las ovejas, es poco probable que tendremos que contar con dos mil millones de ellos, por lo que ¿por qué perder la mayoría de estos 32 bits si no los necesitamos;

- necesitamos valores mucho más grandes; por ejemplo, tenemos la intención de calcular el número exacto de los seres humanos que viven en la Tierra; en este caso, necesitamos más de 32 bits para representar ese número,

- esto nos lleva a otra observación - después de todo, el número de habitantes en la Tierra nunca será un número negativo; parece como un verdadero desperdicio que hasta la mitad del rango permitido nunca serán usados.

[pic 1]

Por estas razones, el lenguaje “C” proporciona algunos métodos para definir con precisión la forma en que la intención de almacenar números grandes / pequeñas.Esto permite que el compilador para asignar memoria, ya sea más pequeño de lo normal (por ejemplo, 16 bits en lugar de 32) o más grande de lo normal (por ejemplo, 64 bits en lugar de 32). También podemos declarar que garantizamos que el valor almacenado en la variable será no negativo .

En este caso la anchura de de la variable de rango no cambia , sino que se desplazahacia los números positivos. Esto significa que en lugar del rango de -2147483648 2147483647 .. obtenemos el rango de 0 .. 4294967295.

Para especificar los requisitos de memoria, podemos utilizar algunas palabras clave adicionales llamados modificadores :

- long- se utiliza para declarar que es necesario un mayor número de enterosque el estándar uno;

- short - se utiliza para determinar que necesitamos una gama más reducida de enteros que el estándar uno;

- unsigned - se utiliza para especificar que se necesita una variable sólo para los números no negativos; aunque puede ser sorprendente, podemos usar este modificador junto con el tipo Char ; vamos a explicar cómo pronto.

Tenga en cuenta que algunos compiladores pueden no ser capaces de distinguir los datos de tipo int y largo . Pueden ser sinónimos. Si desea forzar al compilador que use la representación real de largo para un número específico, puede utilizar la larga larga tipo.

[pic 2]

La variable contador utilizara menos bits que el estándar int (por ejemplo, podría ser de 16 bits de longitud - en este caso, la gama de la variable será suprimida a la gama de [-32768-32.767]) →

La palabra int puede ser omitido como se consideran todas las declaraciones que se especifique int por defecto, como esto:

short Counter;short int Counter;

La variable Ants ocupará más bits que el estándar int (por ejemplo, 64 bits, por lo que se puede utilizar para almacenar los números de la gama de[-9223372036854775808 .. 9223372036854775807] - ¿Se puede leer un número tan enorme →?

Nota - podemos volver a omitir la palabra int :

Long Long Ants;

[pic 3]

Si llegamos a la conclusión de que una variable será no ser un valor negativo , podemos utilizar la unsigned modificador →

Por supuesto, podemos omitir el int como de costumbre:

unsigned Positive;

[pic 4]

También podemos mezclar algunos de los modificadores juntos - echar un vistazo →

podemos eliminar la palabra int y la declaración a preservar su significado:

unsigned long long HugeNumber;

Un ejemplo más modesta es aquí →

Su forma equivalente es: [pic 5]

unsigned short Lambs;

Los long y short modificadores no deben ser utilizados en conjunción con el tipo de char (por qué?) Y (por razones obvias) no deben ser utilizados simultáneamente en una sola declaración. Pero no hay nada que nos impida el uso de la no firmada modificador con una variable de tipo Char . ¿Qué obtenemos de esta declaración?

No hay que olvidar que no se nos permite omitir la palabra char. La mayoría de los compiladores actualmente en uso suponer que los caracteres se almacenan utilizando 8 bits (1 byte). Eso puede ser suficiente para almacenar un valor pequeño, como el número de meses o incluso el día del mes.

Si tratamos a la variable char como un número entero con signo, su alcance sería [-128 .. 127]. Si no necesitamos ningún valor con signo (como en el ejemplo aquí →), sus cambios de intervalo a [0 .. 255]. Esto puede ser suficiente para muchas aplicaciones y también puede resultar en ahorros significativos en el uso de memoria.

Pero tenemos que añadir una observación importante. Hasta ahora hemos usado literales enteros, suponiendo que todos ellos son de tipo int . Este es generalmente el caso, pero hay algunos casos en los que el compilador reconoce literales de tipo long . Esto ocurrirá si:

- un valor literal va más allá de lo aceptable gama de tipo int ;

- una letra L o l se adjunta a la literal, tal como 0L o 1981l - ambos de estos literales son de tipo largo .

El modificados short no se puede utilizar junto con float , pero podemos utilizar el tiempo modificador aquí. Se asume que el tipo long de float es un sinónimo de otro tipo llamado double . Las variables de tipo double pueden diferir de las variables de tipo float, no sólo en rango , sino también en la precisión .

¿Qué significa esto? Los datos almacenados en una variable de punto flotante tiene precisión finita - en otras palabras, sólo un cierto número de dígitos se almacena precisamente en la variable.

Por ejemplo, se espera que el valor:

1111111111111111111.111111111111111111111

será almacenada por un tipo específico de equipo como:

1111111131851653120.000000

Decimos que la variable ahorra (sólo) 8 cifras precisas . Esto es dentro de la precisión esperada de largos de 32 bits float . El uso de double (que suele ser de 64 bits de longitud) garantiza que la variable ahorrará un número más importante de dígitos - sobre

...

Descargar como  txt (17.7 Kb)   pdf (69.7 Kb)   docx (581.2 Kb)  
Leer 11 páginas más »
Disponible sólo en Essays.club