은 "선택 해제"문/연산자를 사용하고, "확인"경우에 사용되는 경우 동작은 동일 할 것이다 x = 0 인 (int/(1.0/x)) 결과가 Int32.MaxValue가 아닌 In32.MinValue가되는 이유는 무엇입니까?
int x = 0;
(int)(-1.0/x) -> Int32.MinValue
(int)(1.0/x) -> Int32.MinValue!!
int x = 0;
(int)(-1.0/x) -> Integer.MinValue
(int)(1.0/x) -> Integer.MaxValue
그러나 C#에서
는 대신 다음 그것의 오버 플로우 예외.그러나 확인되지 않은 컨텍스트에서는 1.0/x (x = 0)를 제외하고 Int32.MaxValue가 아니라 Int32.MaxValue가됩니다.
나는 뭔가를 놓친가요?
왜냐하면'C# '은'Java'가 아니기 때문입니다. –
@ Selman22 둘 다 int 사양에 따르지 않고 int 연산에 대한 IEEE 사양을 따릅니다. – Servy
(int) (1.0/x)는 나에게 Int32.MaxValue를 제공합니다. – Tarec