이 프로그램은 WindowsXP 시스템의 VC++ 6.0으로 작성되었습니다.__int64 변수를 직접 -2500000000으로 설정할 수없는 이유는 무엇입니까?
__int64 변수를 직접 -2500000000으로 설정하려고하면 32 비트 값으로 잘리고 2의 보수가 취해집니다.
__int64 testval;
testval = -2500000000;
이 시점에서 testval은 1794967293 (110 1010 1111 1101 0000 0111 0000 0000 바이너리)과 같습니다. I 부정적인 의해 곱셈 후 2,500,000,000에 변수를 설정하고
, 그것은 작동 : 가변 testVal에가 (0,101 0,000 0,010 1,111 1,001 0,000 0,000 이진 1,001) -2500000000 동일
__int64 testval;
testval = 2500000000;
testval *= -1;
.
아이디어가 있으십니까? 감사합니다. .
MSVC6? 아야! 그 상처! –