C++의 부호 있는 정수 표현식과 부호 없는 정수 표현식 비교

Muhammad Adil 2023년12월11일
C++의 부호 있는 정수 표현식과 부호 없는 정수 표현식 비교

C++는 범용 프로그래밍 언어입니다. 시스템 프로그래밍에 대한 편견으로 설계되었지만 비즈니스 세계에서도 널리 사용됩니다.

C++의 부호 있는 정수 표현식과 부호 없는 정수 표현식 비교

C++는 intunsigned int로 작성된 부호 있는 정수 및 부호 없는 정수를 지원합니다. 부호 있는 정수를 사용할 때 관계 연산자를 사용하여 두 값을 비교할 수 있습니다.

관계 연산자는 부호 없는 정수를 사용할 때 항상 false 또는 true를 평가하기 때문에 작동하지 않습니다.

부호 있는 숫자는 부호 없는 정수보다 적은 메모리를 사용하기 때문에 일반적으로 대부분의 프로세서에서 부호 없는 정수보다 빠릅니다.

부호 있는 정수는 음수와 양수를 저장하기 때문에 부호 없는 정수보다 더 많은 메모리가 필요합니다. 이것은 부호 있는 정수가 부호 없는 정수보다 주어진 데이터 양에 대해 더 많은 메모리를 사용한다는 것을 의미합니다.

부호 없는 정수는 양수만 나타낼 수 있지만 두 개의 다른 값을 추가하면 부호 없는 정수에 대해 항상 동일한 부호(+ 또는 -)가 있는 결과를 얻게 됩니다. 부호 있는 정수의 경우 두 개의 다른 값을 추가하면 두 개의 다른 부호(+ 또는 -)가 있는 결과를 얻게 됩니다.

C++ 컴파일러 경고

부호 있는 및 부호 없는 int의 범위가 다양하고 예기치 않은 성능을 제공할 수 있기 때문에 컴파일러는 부호 있는 유형과 부호 없는 유형 간의 비교를 경고합니다.

또한 부호 있는 정수 표현식과 부호 없는 정수 표현식이 혼합되어 있기 때문에 프로그램의 안전성을 보장할 수 없습니다. 이것은 음수가 부호 없는 유형으로 변환되거나 양수가 부호 있는 유형으로 변환될 때 발생할 수 있습니다.

표현식에 대상 유형에 맞는 값을 가진 부호 있는 유형의 피연산자가 하나만 있으면 컴파일러에서 경고하지 않습니다.

컴파일러가 경고하는 방법을 더 잘 이해하기 위해 예제를 논의해 보겠습니다.

#include <iostream>
#include <string>
using namespace std;

int helloWorld(string input);
int main() {
  string input;
  input = "sample";
  helloWorld(input);
}
int helloWorld(string input) {
  int demo = 0;
  for (int x = 0; x < input.length(); x++) {
    if (input.substr(x, 4) == " ") {
      demo++;
    }
  }
  cout << demo;
}

이 링크를 클릭 코드의 라이브 데모를 확인하십시오.

Muhammad Adil avatar Muhammad Adil avatar

Muhammad Adil is a seasoned programmer and writer who has experience in various fields. He has been programming for over 5 years and have always loved the thrill of solving complex problems. He has skilled in PHP, Python, C++, Java, JavaScript, Ruby on Rails, AngularJS, ReactJS, HTML5 and CSS3. He enjoys putting his experience and knowledge into words.

Facebook

관련 문장 - C++ Integer