나는 닷넷 프로그램에서 이상한 행동을 목격하고 있습니다 :.net Int64의 동작이 마치 Int32의 것처럼 동작하는 이유는 무엇입니까?
Console.WriteLine(Int64.MaxValue.ToString());
// displays 9223372036854775807, which is 2^63-1, as expected
Int64 a = 256*256*256*127; // ok
Int64 a = 256*256*256*128; // compile time error :
//"The operation overflows at compile time in checked mode"
// If i do this at runtime, I get some negative values, so the overflow indeed happens.
왜 내 INT64의 동작합니다 Int64.MaxValue들이 64 비트를 사용하고 확인하는 것처럼 보이지만 그들이 INT32의는 것처럼?
이 관련이 있다면, 32 비트 OS를 사용하고, 전체 작업이 Int32
연산을 사용하여 수행되도록 대상 플랫폼은
젠장 당신이 존 소총! 당신은 약 10 초 정도 나를 때렸다! :) –
나는 어리 석을 느낀다 :) 고마워! – Brann
당신은 바보가 아니며 처음에는 조금 비현실적입니다. 나는 "double res = someInt/otherInt"가 부동 소수점 나누기를 수행하고 왼쪽 사이드가 중요하지 않다는 것을 알았을 때 그때까지 물었다. –