«signed» 태그된 질문

컴퓨팅에서 부호는 컴퓨터 프로그램에서 숫자를 나타내는 데이터 유형의 속성입니다.


17
std :: vector에 대한 반복 : 부호없는 vs 부호있는 인덱스 변수
C ++에서 벡터를 반복하는 올바른 방법은 무엇입니까? 이 두 코드 조각을 고려하십시오.이 코드는 잘 작동합니다. for (unsigned i=0; i < polygon.size(); i++) { sum += polygon[i]; } 그리고 이것: for (int i=0; i < polygon.size(); i++) { sum += polygon[i]; } 생성 warning: comparison between signed and unsigned integer expressions합니다. …
470 c++  stl  unsigned  signed 

15
부호있는 정수와 부호없는 정수
부호있는 정수와 부호없는 정수의 차이점은 다음과 같습니다. 부호없는 값은 더 큰 양수 값을 보유 할 수 있으며 음수 값을 보유 할 수 없습니다. 부호 없음은 값의 일부로 선행 비트를 사용하는 반면 부호있는 버전은 가장 왼쪽 비트를 사용하여 숫자가 양수인지 음수인지 식별합니다. 부호있는 정수는 양수와 음수를 모두 보유 할 수 있습니다. …

6
왜 0 <-0x80000000입니까?
아래에 간단한 프로그램이 있습니다. #include &lt;stdio.h&gt; #define INT32_MIN (-0x80000000) int main(void) { long long bal = 0; if(bal &lt; INT32_MIN ) { printf("Failed!!!"); } else { printf("Success!!!"); } return 0; } 조건 if(bal &lt; INT32_MIN )은 항상 참입니다. 그게 어떻게 가능해? 매크로를 다음과 같이 변경하면 정상적으로 작동합니다. #define INT32_MIN (-2147483648L) …


11
~ x + ~ y == ~ (x + y)는 항상 거짓입니까?
이 코드는 항상 거짓으로 평가됩니까? 두 변수 모두 2의 보수 부호있는 정수입니다. ~x + ~y == ~(x + y) 조건을 만족하는 숫자가 있어야한다고 생각합니다. 나는 사이의 숫자를 테스트하려 -5000하고 5000있지만, 결코 이루어지지 평등. 조건에 대한 해를 찾기 위해 방정식을 설정하는 방법이 있습니까? 하나를 다른 것으로 바꾸면 프로그램에 교활한 버그가 발생합니까?

8
C ++ 16 진 문자열을 부호있는 정수로 변환
C ++에서 16 진수 문자열을 부호있는 32 비트 정수로 변환하고 싶습니다. 예를 들어 16 진 문자열 "fffefffe"가 있습니다. 이진 표현은 11111111111111101111111111111110입니다. 서명 된 정수 표현은 -65538입니다. C ++에서이 변환을 어떻게 수행합니까? 음수가 아닌 숫자에 대해서도 작동해야합니다. 예를 들어, 16 진수 문자열 "0000000A"는 2 진수로 00000000000000000000000000001010이고 10 진수로 10입니다.
135 c++  integer  hex  signed 


2
std :: ssize ()가 C ++ 20에 도입 된 이유는 무엇입니까?
C ++ 20std::ssize() 은 아래와 같이 무료 기능을 도입했습니다 . template &lt;class C&gt; constexpr auto ssize(const C&amp; c) -&gt; std::common_type_t&lt;std::ptrdiff_t, std::make_signed_t&lt;decltype(c.size())&gt;&gt;; 가능한 구현은를 사용하여 cl ass C 멤버 함수의 static_cast반환 값을 서명 된 대응 항목 으로 변환하는 것 같습니다 .size() size()C 의 멤버 함수는 항상 음이 아닌 값을 반환 하기 …
99 c++  stl  unsigned  signed  c++20 

5
부호있는 / 부호없는 비교
다음 코드가 표시된 장소에서 경고를 표시하지 않는 이유를 이해하려고합니다. //from limits.h #define UINT_MAX 0xffffffff /* maximum unsigned int value */ #define INT_MAX 2147483647 /* maximum (signed) int value */ /* = 0x7fffffff */ int a = INT_MAX; //_int64 a = INT_MAX; // makes all warnings go away unsigned int b …

12
C / C ++에서 서명 된 오버플로 감지
언뜻보기 에이 질문은 정수 오버플로를 감지하는 방법 의 중복처럼 보일 수 있습니다 . 그러나 실제로는 상당히 다릅니다. 부호없는 정수 오버플로를 감지하는 것은 매우 사소한 일이지만 C / C ++에서 서명 된 오버플로를 감지하는 것은 실제로 대부분의 사람들이 생각하는 것보다 더 어렵다는 것을 발견했습니다. 가장 분명하지만 순진한 방법은 다음과 같습니다. int …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.