서명영점
Signed zero서명된 0은 연관된 기호와 함께 0이다. 일반 산술에서 숫자 0에는 기호가 없으므로 -0, +0, 0이 동일하다. 그러나 계산에서 일부 숫자 표현은 종종 -0(음수 0)과 +0(양수 0)으로 표시되는 두 개의 0이 존재하도록 허용하며, 수치 비교 연산에 의해 동일하지만 특정 연산에 다른 동작이 있을 수 있다. 이것은 정수에 대한 부호수 표시와 크기 표시, 그리고 대부분의 부동 소수 표시에서 발생한다. 숫자 0은 보통 +0으로 인코딩되지만 +0 또는 -0으로 나타낼 수 있다.
부동 소수점 산술에 대한 IEEE 754 표준(대부분의 컴퓨터와 부동 소수점 숫자를 지원하는 프로그래밍 언어에서 일반적으로 사용됨)에는 +0과 -0이 모두 필요하다. 부호화된 0을 가진 실제 산술은 1/0 = -190, 1/+0 = +190과 ±0/±0에 대해서만 분할이 정의되지 않는 확장된 실수 라인의 변형으로 간주할 수 있다.
부정 서명 0은 아래에서 0에 접근하는 수학적 분석 개념을 단측 한계로 반향하는데, x → 0−, x → 0- 또는 x → ↑0으로 나타낼 수 있다. "-0"이라는 표기법은 0으로 반올림된 음수를 나타내기 위해 비공식적으로 사용할 수 있다. 마이너스 영의 개념은 통계 역학과 다른 학문 분야에서도 이론적 적용이 있다.
IEEE 754에 서명된 0을 포함하면 특히 복잡한 기초 기능을 가진 컴퓨팅을 할 때 일부 중대한 [1]문제에서 수치 정확도를 훨씬 쉽게 달성할 수 있다고 주장한다.[2] 반면, 부호영역 개념은 음의 영이 0과 같다는 대부분의 수학 분야에서 만들어진 일반적인 가정과는 상반된다. 음의 영점을 허용하는 표현은 프로그램에서 오류의 원인이 될 수 있는데, 만약 소프트웨어 개발자들이 두 영점 표현이 수치 비교에서 동등하게 작용하지만, 일부 운영에서 서로 다른 결과를 산출한다는 점을 고려하지 않는다면 말이다.
표현
이진 정수 형식은 다양한 인코딩을 사용할 수 있다. 널리 사용되는 두 개의 보완 인코딩에서 0은 부호화되지 않았다. 정수에 대한 1+7비트 신호 및 크기 표시에서 음의 0은 비트 문자열 10000,000으로 표시된다. 8비트의 보완 표현에서 음의 0은 비트 문자열 11111111로 표현된다. 이 세 가지 인코딩에서 모두 양수 또는 미서명 0은 00000000으로 표시된다. 그러나 후자의 두 인코딩(서명된 0 포함)은 정수 형식에서는 드물다. 서명된 0이 있는 가장 일반적인 형식은 부동 소수점 형식(IEEE 754 형식 등)이다.

IEEE 754 이진 부동소수 형식에서 0 값은 편향된 지수와 의미 그리고 둘 다 0으로 나타낸다. 마이너스 0은 기호 비트가 1로 설정되어 있다. 어떤 사람은 특정한 계산의 결과로 음의 영을 얻을 수 있다. 예를 들어, 음수의 산술적 과소 흐름의 결과로서 음의 영을 얻을 수도 있다(다른 결과도 가능할 수 있다). −1.0×0.0
, 또는 단순히 로서. −0.0
.
IEEE 754 소수 부동소수 형식에서 음의 0은 형식 범위, 참의의도 및 0, 부호 비트가 1인 어떤 유효한 지수로 표현된다.
속성 및 처리
IEEE 754 부동소수점 표준은 다양한 작동에서 양의 0과 음의 0의 동작을 지정한다. 결과는 현재 IEEE 반올림 모드 설정에 따라 달라질 수 있다.
표기법
서명된 0과 서명되지 않은 0을 모두 포함하는 시스템에서는 0 + 0 -{\이 서명된 0에 대해 사용되는 경우가 있다.
산술
덧셈과 곱셈은 서로 상통하지만, 따라야 하는 몇 가지 특별한 규칙이 있는데, 이는 대수적 단순화를 위한 일반적인 수학 규칙이 적용되지 않을 수도 있다는 것을 의미한다. 아래= 기호는 얻은 부동 소수점 결과를 나타낸다(일반적인 동일성 연산자가 아님).
기호에 대한 일반적인 규칙은 다음을 곱하거나 나눌 때 항상 따른다.
- - ) =- 0 x 의 경우 ±0과 다름)
- =- 0 오른쪽 의 경우 0과 다름)
서명된 0을 추가 또는 빼기 위한 특별한 규칙이 있다.
- +(± 0)= 의 경우 0과 다름)
- - = + (- x)=+ 유한 x 음으로 반올림할 때 -0)
음의 영 때문에(그리고 반올림 모드가 위쪽 또는 아래쪽인 경우에도) 부동 소수점 변수 x와 y의 경우 -(x - y)와 (-x) - (-y)는 y - x로 대체될 수 없다. 그러나 (-0) + x는 가장 가까운 반올림(x가 신호 NaN일 수 있는 경우를 제외)으로 x로 대체할 수 있다.
기타 몇 가지 특별 규칙:
0이 아닌 숫자를 0으로 나누면 0으로 나누기 플래그가 설정되고, NaN을 생성하는 작업에서는 유효하지 않은 작동 플래그가 설정된다. 해당 플래그에 대해 활성화된 경우 예외 처리기가 호출된다.
비교
IEEE 754 표준에 따르면 음의 0과 양의 0은 다음과 같은 일반적인 (수치적) 비교 연산자와 동등하게 비교되어야 한다. ==
C와 자바의 운영자. 이러한 언어에서 다음 두 값을 구별하기 위해 특수 프로그래밍 기법이 필요할 수 있다.
- 비트 패턴의 기호 비트를 볼 수 있도록 정수 유형에 숫자를 펀칭하여 입력하십시오.
- ISO C 사용
copysign()
0의 부호를 0이 아닌 숫자로 복사하는 함수(IEEE 754 copySign 작업). - ISO C 사용
signbit()
숫자의 기호 비트가 설정되었는지 여부를 반환하는 매크로(IEEE 754 isSignMinus operation); - 0의 역수를 취하여 1/(+0) = +1 또는 1/(-0) = -1(제로 예외에 의한 분할이 끼이지 않는 경우)을 구한다.
참고: 특히 두 개의 보완 시스템에서 일체형 유형으로의 캐스팅이 항상 효과가 있는 것은 아니다.
그러나 일부 프로그래밍 언어는 두 개의 0을 구별하는 대체 비교 연산자를 제공할 수 있다. 예를 들면, 이 경우다. 동일한 방법(Java의 경우) Double
포장지 [4]반
온도와 같이 반올림된 값
비공식적으로는 0으로 반올림된 음수 값에 대해 "-0"이라는 표기법을 사용할 수 있다. 이 표기법은 음의 기호가 유의할 때 유용할 수 있다. 예를 들어, 섭씨 온도를 표로 표시할 때, 음의 기호는 영하를 의미한다.
통계역학에서
통계역학에서는 인구분포함수의 에너지 계수가 -1/온도이기 때문에 인구역전 시스템을 설명하기 위해 음온을 사용하는 경우가 있는데, 양 무한도보다 큰 온도를 갖는 것으로 볼 수 있다. 이 맥락에서 -0의 온도는 다른 음의 온도보다 큰 (이론적) 온도로, 인구 역전의 (이론적) 최대 범위에 해당하며, +0과 반대되는 극한이다.[5]
참고 항목
참조
- ^ William Kahan, The State of the Art in the 수치 분석(eds)에서 "복잡한 초등 기능, 즉 아무것도 아닌 것에 대한 많은 아도(Much About Noth's Sign Bit)"의 브랜치 컷. Iserles and Powell), 1987년 옥스포드 클라렌던 프레스.
- ^ 윌리엄 카한, 복합 z-평면의 파생상품, 페이지 10.
- ^ Cowlishaw, Mike (7 April 2009). "Decimal Arithmetic: Arithmetic operations – square-root". speleotrove.com (IBM Corporation). Retrieved 7 December 2010.
- ^ http://java.sun.com/javase/6/docs/api/java/lang/Double.html#equals(java.lang.Object)
- ^ Kittel, Charles and Herbert Kroemer (1980). Thermal Physics (2nd ed.). W. H. Freeman and Company. p. 462. ISBN 0-7167-1088-9.
- "Floating point types". MSDN C# Language Specification. Retrieved 15 October 2005.
- "Division operator". MSDN C# Language Specification. Retrieved 15 October 2005.
- Thomas Wang (March 2000). "Java Floating-Point Number Intricacies". September 2000. Archived from the original on 2005-09-21.
{{cite journal}}
: Cite 저널은 필요로 한다.journal=
(도움말) - Mike Colishaw (28 July 2008). "Decimal Arithmetic Specification, version 1.68". Retrieved 2008-08-14. – 음의 0을 포함하는 소수 부동소수 규격
추가 읽기
- Michael Ingrassia. "Fortran 95 SIGN Change". Sun Developer Network. Retrieved October 15, 2005. – 포트란의 변화
SIGN
음의 영점을 수용하기 위해 Fortran 95에서 기능한다. - "JScript data types". MSDN JScript. Retrieved October 16, 2005. – JScript의 부동 소수점 유형(정의에 의한 음수 0)
- Venners, Bill (October 1, 1996). "Floating-point arithmetic". Learn Java. JavaWorld. Under the Hood. Retrieved 2020-07-14. – Java 가상 시스템에서 음의 0을 나타냄
- Bruce Dawson (25 February 2012). "Comparing floating point numbers, 2012 Edition". – 부동 소수점 비교 시 음의 영점을 처리하는 방법
- John Walker. "Minus Zero". UNIVAC Memories. Retrieved October 17, 2005. – UNIVAC 1100 제품군 컴퓨터의 보완 번호