출력이 "같음" 인 다음 코드를 보았지만이 프로그램을 이해하는 데 어려움이 있습니다. 이 프로그램을 이해하도록 도와주세요.는 C 프로그램의 결과를 설명합니다
int main()
{
unsigned int x = -1;
int y = ~0;
if(x == y)
printf("same");
else
printf("not same");
return 0;
}
"동일한 출력"은 어떻게됩니까? 여기에서 일어나는 일에 대해 도와주세요.
에 해당 0'? 설명 해주십시오. – ouah
~은 bitwise NOT –
입니다. -1과 ~ 0의 비트 동등성 외에도 컴파일러에서 ~ 0을 'unsigned int'유형으로 변환하는 "일반적인 산술 변환"을 수행합니다 (예 : [ 여기] (https://msdn.microsoft.com/en-us/library/3t4w2bkb.aspx)). 비교의 결과는 수치가 예를 들어로 변환 된 것과 다를 것이다. 'int64_t'하지만 이것은 c에서 일어나는 것이 아닙니다. 관련된 질문 : [here] (http://stackoverflow.com/q/7544123/509868) – anatolyg