> 백엔드 개발 > C++ > 숫자 값의 부호를 결정하기 위한 표준 부호 기능이 C/C에 있습니까?

숫자 값의 부호를 결정하기 위한 표준 부호 기능이 C/C에 있습니까?

Mary-Kate Olsen
풀어 주다: 2024-12-25 06:52:12
원래의
806명이 탐색했습니다.

Is There a Standard Sign Function in C/C   for Determining the Sign of Numerical Values?

C/C에서 숫자 값의 부호 결정

프로그래밍에서 숫자 값의 부호 결정( 1은 양수, -1 음수)는 일반적인 작업입니다. 사용자 정의 부호 계산 기능을 구현하는 것이 가능하지만 표준화된 솔루션이 있는지 궁금할 수도 있습니다.

C/C의 표준 부호 기능

아니요, 표준 기호 기능 없음 숫자용으로 특별히 C 또는 C 표준 라이브러리에서 제공 type.

부동 소수점 계산을 위한 대체 옵션

전용 부호 기능은 없지만 부동 소수점 숫자의 부호를 계산하는 대체 방법이 있습니다. 널리 사용되는 접근 방식 중 하나는 제공된 숫자의 절대값과 다른 지정된 숫자의 부호를 사용하여 새 값을 반환하는 copysign 함수를 사용하는 것입니다. 예를 들어 다음과 같이 사용할 수 있습니다.

#include <math.h>
int sign(float val) {
  return copysign(1.0f, val);
}
로그인 후 복사

유형이 안전한 C 기호 함수

보다 유형이 안전하고 이식 가능한 솔루션은 일반을 정의하는 것입니다. 템플릿을 사용한 서명 함수:

template <typename T>
int sgn(T val) {
  return (T(0) < val) - (val < T(0));
}
로그인 후 복사
이 함수는 0과 비교될 수 ​​있는 모든 유형에 대해 작동하며 부호 있는 유형과 부호 없는 유형을 모두 지원합니다. 유형.

장점 및 주의 사항

sgn 기능은 효율적이고 표준을 준수하며 정확합니다. 그러나 특정 시나리오에서는 컴파일 시간 오버헤드가 발생할 수 있는 템플릿입니다.

위 내용은 숫자 값의 부호를 결정하기 위한 표준 부호 기능이 C/C에 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿