Δημοσιεύτηκε: 08 Μαρ 2012, 19:05
Ilias95 έγραψε:Star_Light έγραψε:Σελιδα 54 2 γραμμές απο το τελος εκει που λεει πως στην C89 αναθεώρηση η τιμή του 9%7 θα ειναι ειτε -2 ειτε 5 οκ το -2 το 5 που ακριβως το βρισκει? :p
Μάλλον εννοείς -9 % 7.
Κατ' αρχήν από την wikipedia σχετικά με τον modulo operator:έγραψε:"When either a or n is negative, this naive definition breaks down and programming languages differ in how these values are defined."
Συνήθως υπολογίζεται έτσι όταν ο διαιρετέος μόνο είναι αρνητικός:
Παίρνουμε ένα πολλαπλάσιο του διαιρέτη που είναι μεγαλύτερο ή ίσο κατά απόλυτη τιμή απ' τον διαιρέτη και το προσθέτουμε στον διαιρετέο. Αυτό θα είναι το υπόλοιπο.
Προσοχή! Δεν είμαι 100% σίγουρος για τον παραπάνω ορισμό!
Δηλαδή στο συγκεκριμένο παράδειγμα. Ένα πολλαπλάσιο του 7 που είναι μεγαλύτερο κατ' απόλυτη τιμή απ' το -9 είναι το 14.
Άρα θα έχουμε: -9 + 14 = 5.
Δες και άλλα παραδείγματα στον interpreter της python για να καταλάβεις:
- Κώδικας: Επιλογή όλων
>>> -9 % 2 #το πολλαπλάσιο είναι το 10, οπότε -9 + 10 = 1
1
>>> -9 % 3 #το πολλαπλάσιο είναι το 9 οπότε -9 + 9 = 0
0
>>>
Δεν είμαι σίγουρος τι παίζει με τα πρόσημα όταν και οι δύο είναι αρνητικοί:
- Κώδικας: Επιλογή όλων
>>> -9 % -2 #το πολλαπλάσιο είναι το -10
-1
>>>
ΥΓ. Καλύτερα προχώρα, έχει πιο ενδιαφέροντα πράγματα...
Απο τον διαιρετέο εννοείς
Ευχαριστω... το ξερω οτι εχει πολυ πιο ενδιαφεροντα πραγματα απλα το παω σιγα και σταθερα