Δημοσιεύτηκε: 08 Μαρ 2012, 19:05
από Star_Light
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
>>>


ΥΓ. Καλύτερα προχώρα, έχει πιο ενδιαφέροντα πράγματα... :P


Απο τον διαιρετέο εννοείς :P

Ευχαριστω... το ξερω οτι εχει πολυ πιο ενδιαφεροντα πραγματα απλα το παω σιγα και σταθερα ;)