산술 연산에서 정수 변환의 원리 공개
산술 연산을 수행하기 전에 C, C에서 짧은 데이터 유형을 int로 변환해야 할 필요성 많은 사람들을 당황하게 만들었습니다. 이 요구 사항은 이러한 언어의 역사에서 유래합니다.
정수 변환의 이론적 근거
국제 표준의 이론적 근거—프로그래밍 언어—C, 섹션 6.3에 따르면. 1.8에서는 더 넓은 유형으로 계산을 수행하기로 결정했습니다. 이유:
일반적인 산술 변환
C99 표준의 섹션 6.3.1.8에서는 산술 표현식의 피연산자에 적용되는 "일반적인 산술 변환"을 정의합니다. 짧은 데이터 유형 피연산자의 경우 이러한 변환은
1의 두 단계로 진행됩니다. 정수 승격
C99 표준의 섹션 6.3.1.1에 설명된 대로 int가 short의 모든 값을 나타낼 수 있는 경우 short 정수는 int로 변환됩니다. 그렇지 않으면 unsigned int로 변환됩니다. 이는 표현 정확도를 손상시키지 않으면서 계산의 일관성을 촉진합니다.
2. 일반적인 산술 변환
승격된 짧은 정수(int 또는 unsigned int)는 특정 산술 연산을 기반으로 추가 변환을 거칩니다.
"부호 없는 보존" 및 " 가치 보존' 접근
표준화 과정에서 정수 승격에 대한 두 가지 접근 방식 사이에 논쟁이 있었습니다.
값 보존 접근 방식이 채택되어 특히 int보다 작은 데이터 유형으로 short가 표현되는 환경에서 보다 일관된 동작과 정확한 표현이 가능합니다.
위 내용은 C와 C에서 산술 연산 전에 정수 변환이 필요한 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!