stringtranslate.com

Cero firmado

El cero con signo es cero con un signo asociado . En aritmética ordinaria, el número 0 no tiene signo, por lo que −0, +0 y 0 son equivalentes. Sin embargo, en informática , algunas representaciones numéricas permiten la existencia de dos ceros, a menudo denotados por −0 ( cero negativo ) y +0 ( cero positivo ), considerados iguales en las operaciones de comparación numérica pero con posibles comportamientos diferentes en operaciones particulares. Esto ocurre en las representaciones de números con signo de magnitud de signo y complemento a uno para números enteros, y en la mayoría de las representaciones de números de punto flotante . El número 0 normalmente se codifica como +0, pero aún puede representarse como +0, −0 o 0.

El estándar IEEE 754 para aritmética de punto flotante (actualmente utilizado por la mayoría de las computadoras y lenguajes de programación que admiten números de punto flotante) requiere +0 y −0. La aritmética real con ceros con signo puede considerarse una variante de la recta numérica real extendida tal que 1/−0 = − ∞ y 1/+0 = +∞; la división solo está indefinida para ± 0/±0 y ±∞/±∞.

El cero con signo negativo hace eco del concepto de análisis matemático de acercarse a 0 desde abajo como un límite unilateral , que puede denotarse por x  → 0 , x  → 0− o x  → ↑0. La notación "-0" puede usarse informalmente para indicar un número negativo que se ha redondeado a cero. El concepto de cero negativo también tiene algunas aplicaciones teóricas en la mecánica estadística y otras disciplinas.

Se afirma que la inclusión del cero con signo en IEEE 754 hace que sea mucho más fácil lograr precisión numérica en algunos problemas críticos, [1] en particular cuando se calcula con funciones elementales complejas . [2] Por otro lado, el concepto de cero con signo va en contra de la suposición habitual hecha en matemáticas de que el cero negativo tiene el mismo valor que cero. Las representaciones que permiten cero negativo pueden ser una fuente de errores en los programas, si los desarrolladores de software no tienen en cuenta que, si bien las dos representaciones de cero se comportan igual en comparaciones numéricas, producen resultados diferentes en algunas operaciones.

Representaciones

Los formatos de enteros binarios pueden utilizar varias codificaciones . En la codificación en complemento a dos , ampliamente utilizada , el cero no está firmado. En una representación de signo y magnitud de 1+7 bits para números enteros, el cero negativo está representado por la cadena de bits 1000 0000 . En una representación en complemento a uno de 8 bits , el cero negativo está representado por la cadena de bits 1111 1111 . En estas tres codificaciones, el cero positivo o sin signo está representado por 0000 0000 . Sin embargo, las dos últimas codificaciones (con un cero con signo) son poco comunes para los formatos de números enteros. Los formatos más comunes con un cero con signo son los formatos de punto flotante ( formatos IEEE 754 o similares), que se describen a continuación.

Cero negativo según representación IEEE 754 en binario32

En los formatos binarios de punto flotante IEEE 754, los valores cero están representados por el exponente sesgado y significa que ambos son cero. El cero negativo tiene el bit de signo establecido en uno. Se puede obtener un cero negativo como resultado de ciertos cálculos, por ejemplo como resultado de un desbordamiento aritmético insuficiente en un número negativo (también pueden ser posibles otros resultados), o −1.0×0.0, o simplemente como −0.0.

En los formatos de punto flotante decimal IEEE 754, un cero negativo se representa mediante un exponente que es cualquier exponente válido en el rango del formato, siendo el verdadero significado cero y el bit de signo uno.

Propiedades y manejo

El estándar de punto flotante IEEE 754 especifica el comportamiento del cero positivo y el cero negativo en diversas operaciones. El resultado puede depender de la configuración actual del modo de redondeo IEEE .

Notación

En sistemas que incluyen ceros con y sin signo, la notación y a veces se utiliza para ceros con signo.

Aritmética

La suma y la multiplicación son conmutativas, pero hay algunas reglas especiales que deben seguirse, lo que significa que es posible que no se apliquen las reglas matemáticas habituales para la simplificación algebraica. El siguiente signo muestra los resultados de punto flotante obtenidos (no es el operador de igualdad habitual).

Al multiplicar o dividir siempre se sigue la regla habitual para los signos:

Existen reglas especiales para sumar o restar ceros con signo:

Debido al cero negativo (y también cuando el modo de redondeo es hacia arriba o hacia abajo), las expresiones −( xy ) y (− x ) − (− y ) , para variables de punto flotante x e y , no se pueden reemplazar por y −x . _ Sin embargo, (−0) + x se puede reemplazar por x redondeando al más cercano (excepto cuando x puede ser un NaN de señalización ).

Algunas otras reglas especiales:

La división de un número distinto de cero por cero establece el indicador de división por cero , y una operación que produce un NaN establece el indicador de operación no válida. Se llama a un controlador de excepciones si está habilitado para el indicador correspondiente.

Comparaciones

Según el estándar IEEE 754, el cero negativo y el cero positivo deben compararse como iguales con los operadores de comparación habituales (numéricos), como los ==operadores de C y Java . En esos lenguajes, es posible que se necesiten trucos de programación especiales para distinguir los dos valores:

Nota: La conversión al tipo integral no siempre funcionará, especialmente en sistemas en complemento a dos.

Sin embargo, algunos lenguajes de programación pueden proporcionar operadores de comparación alternativos que distinguen los dos ceros. Este es el caso, por ejemplo, del método igual en Double la clase contenedora de Java . [4]

En valores redondeados como las temperaturas.

De manera informal, se puede utilizar la notación "-0" para un valor negativo redondeado a cero. Esta notación puede resultar útil cuando un signo negativo es significativo; por ejemplo, al tabular temperaturas en grados Celsius , donde un signo negativo significa temperaturas bajo cero .

En mecánica estadística

En mecánica estadística , a veces se utilizan temperaturas negativas para describir sistemas con inversión de población , que se puede considerar que tienen una temperatura mayor que el infinito positivo, porque el coeficiente de energía en la función de distribución de población es −1/Temperatura. En este contexto, una temperatura de −0 es una temperatura (teórica) mayor que cualquier otra temperatura negativa, correspondiente al grado máximo (teórico) concebible de inversión de población, el extremo opuesto a +0. [5]

Ver también

Referencias

  1. ^ William Kahan , "Cortes de ramas para funciones elementales complejas, o mucho ruido y pocas nueces", en El estado del arte en análisis numérico (eds. Iserles y Powell), Clarendon Press, Oxford, 1987.
  2. ^ William Kahan , Derivadas en el plano z complejo, p. 10.
  3. ^ Cowlishaw, Mike (7 de abril de 2009). "Aritmética decimal: operaciones aritméticas - raíz cuadrada". speleotrove.com ( corporación IBM ) . Consultado el 7 de diciembre de 2010 .
  4. ^ http://java.sun.com/javase/6/docs/api/java/lang/Double.html#equals(java.lang.Object)
  5. ^ Kittel, Charles y Herbert Kroemer (1980). Física Térmica (2ª ed.) . WH Freeman y compañía . pag. 462.ISBN _ 0-7167-1088-9.

Otras lecturas