Tôi biết, Int32.MaxValue * Int32.MaxValue
sẽ mang lại số lớn hơn Int32
; Nhưng, không nên tuyên bố này đưa ra một loại ngoại lệ nào đó?Tại sao Int32.MaxValue * Int32.MaxValue == 1?
Tôi đã thực hiện việc này khi thực hiện một việc như IF (X * Y > Z)
trong đó tất cả đều là Int32
. X
và Y
đủ lớn, bạn nhận được giá trị không có thật từ X * Y
.
Tại sao lại như vậy và cách thực hiện việc này? bên cạnh việc truyền mọi thứ tới Int64
.
Đây có phải là trong một 'khối unchecked'? – Skywalker
Xem http://stackoverflow.com/questions/2363838/when-must-we-use-checked-operator-in-c –