Tôi không hỏi về định nghĩa mà là lý do tại sao người tạo ngôn ngữ chọn xác định mô đun với hành vi bất đối xứng trong C++. (Tôi nghĩ Java cũng vậy)Tại sao mô-đun được định nghĩa theo cách nó được viết bằng ngôn ngữ lập trình
Giả sử tôi muốn tìm số nhỏ nhất lớn hơn hoặc bằng n chia hết cho f.
Nếu n là tích cực, sau đó tôi làm:
if(n % f)
ans = n + f - n % f;
Nếu n là số âm:
ans = n - n % f;
Rõ ràng, định nghĩa này không phải là thích hợp nhất khi giao dịch với số âm và dương. Vậy tại sao nó được định nghĩa như thế này? Trong trường hợp nào nó mang lại hiệu quả?
Bạn có hỏi tại sao modulo không có định nghĩa cố định cho toán hạng âm? –
http://en.wikipedia.org/wiki/Modulo_operation – starblue
Để làm rõ: Tôi hỏi lý do tại sao định nghĩa là không đối xứng đối với tính chẵn lẻ của toán hạng đầu tiên. –