Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2870 connectés 

  FORUM HardWare.fr
  Programmation
  C

  modulo négatif?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

modulo négatif?

n°1096763
mp3490
Posté le 25-05-2005 à 15:17:51  profilanswer
 

Bonjour,
je voudrais savoir si on pouvais avoir des modulo négatif en C.
du style n mod 8 =-1
Merci d'avance.
@+

mood
Publicité
Posté le 25-05-2005 à 15:17:51  profilanswer
 

n°1096765
Elmoricq
Modérateur
Posté le 25-05-2005 à 15:19:13  profilanswer
 

Euh.
Le modulo, c'est le reste d'une division. Alors, non, il ne peut pas être négatif, il est forcément supérieur ou égal à 0.


Message édité par Elmoricq le 25-05-2005 à 15:21:42
n°1096855
pains-aux-​raisins
Fatal error
Posté le 25-05-2005 à 16:11:15  profilanswer
 

Elmoricq a écrit :

Euh.
Le modulo, c'est le reste d'une division. Alors, non, il ne peut pas être négatif, il est forcément supérieur ou égal à 0.


dans la pratique, selon les implémentation, le cas du modulo négatif est à gérer.
D'après mes souvenirs, en C le modulo est négatif, mais cela reste à vérifier.
Il faut donc faire un test de signe puis ajuster.


Message édité par pains-aux-raisins le 25-05-2005 à 16:17:54
n°1097307
Sve@r
Posté le 25-05-2005 à 21:50:17  profilanswer
 

mp3490 a écrit :

Bonjour,
je voudrais savoir si on pouvais avoir des modulo négatif en C.
du style n mod 8 =-1
Merci d'avance.
@+


-9 mod 8 = -1 !!!


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1097344
Taz
bisounours-codeur
Posté le 25-05-2005 à 22:14:27  profilanswer
 

erreur, le modulo, ce n'est pas le reste de la division.
 

(remainder  10  3) ;; 1
(remainder  10 -3) ;; 1
(remainder -10 -3) ;; -1
(remainder -10  3) ;; -1
 
 
(modulo  10  3) ;; 1
(modulo  10 -3) ;; -2
(modulo -10 -3) ;; -1
(modulo -10  3) ;; 2

n°1097350
Taz
bisounours-codeur
Posté le 25-05-2005 à 22:15:21  profilanswer
 

Emmanuel Delahaye a écrit :

Comportement indéfini

sérieux ? ça m'étonne beaucoup ça

n°1097352
WhatDe
Posté le 25-05-2005 à 22:18:13  profilanswer
 

Taz a écrit :

erreur, le modulo, ce n'est pas le reste de la division.
 

(remainder  10  3) ;; 1
(remainder  10 -3) ;; 1
(remainder -10 -3) ;; -1
(remainder -10  3) ;; -1
 
 
(modulo  10  3) ;; 1
(modulo  10 -3) ;; -2
(modulo -10 -3) ;; -1
(modulo -10  3) ;; 2



On m'aurait menti toute ma vie ? [:totoz]


---------------
[:whatde]
n°1097353
Emmanuel D​elahaye
C is a sharp tool
Posté le 25-05-2005 à 22:19:06  profilanswer
 

Taz a écrit :

sérieux ? ça m'étonne beaucoup ça


Non. Post effacé après secouage de neurone.
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1097359
Taz
bisounours-codeur
Posté le 25-05-2005 à 22:22:28  profilanswer
 

Sve@r a écrit :

-9 mod 8 = -1 !!!

http://fr.wikipedia.org/wiki/Arith [...] _modulaire
 
bon alors, n'étant pas matheux, je ne me suis jamais posé la question, % en C (et autre langage reprenant les mêmes opérateurs), c'est le modulo (congruence) ou le reste de la division euclidienne ?
 
 
edit : OK, Emmanuel, donc c'est bien le vrai modulo.


Message édité par Taz le 25-05-2005 à 22:23:29
n°1097360
Taz
bisounours-codeur
Posté le 25-05-2005 à 22:23:56  profilanswer
 

Emmanuel Delahaye a écrit :

Non. Post effacé après secouage de neurone.


n'efface pas tes messages s'il te plait.

mood
Publicité
Posté le 25-05-2005 à 22:23:56  profilanswer
 

n°1097364
Taz
bisounours-codeur
Posté le 25-05-2005 à 22:26:02  profilanswer
 

la division euclidienne, c'est une opérations où les opérandes sont des entiers naturels. la congruence est une relation entre entiers relatifs
 
edit : (limite antiflood)
donc la fonction remainder, si elle est appliquée a des entiers relatifs, retourne (remainder a b) -> (* (signe a) (remainder (abs a) (abs b)), il me semble.


Message édité par Taz le 25-05-2005 à 22:30:10
n°1097377
Emmanuel D​elahaye
C is a sharp tool
Posté le 25-05-2005 à 22:33:31  profilanswer
 

Taz a écrit :

n'efface pas tes messages s'il te plait.


Euh, pourquoi ? Pas la peine de laisser trainer une anerie...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1097380
Taz
bisounours-codeur
Posté le 25-05-2005 à 22:35:18  profilanswer
 

ben pour pouvoir suivre le fil de la discussion. si tu veux supprimer quelque chose, utilise la balise strike

n°1097386
Emmanuel D​elahaye
C is a sharp tool
Posté le 25-05-2005 à 22:38:09  profilanswer
 

Taz a écrit :

ben pour pouvoir suivre le fil de la discussion. si tu veux supprimer quelque chose, utilise la balise strike


OKI.
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1097501
fra0
Posté le 26-05-2005 à 02:18:39  profilanswer
 

Taz a écrit :

erreur, le modulo, ce n'est pas le reste de la division.
 

(remainder  10  3) ;; 1
(remainder  10 -3) ;; 1
(remainder -10 -3) ;; -1
(remainder -10  3) ;; -1
 
 
(modulo  10  3) ;; 1
(modulo  10 -3) ;; -2
(modulo -10 -3) ;; -1
(modulo -10  3) ;; 2



 
quoi ça ?
 
en C :
 
-10%3==-1
&&
10%-3==1
 
donc c'est bien le reste de la division entière

n°1097503
fra0
Posté le 26-05-2005 à 02:32:16  profilanswer
 

alias modulo exemple,
 
-2/3==-0,666666666666...
 
en C on tronque donc :
 
-2/3==0 reste -2
 
maintenant si on arrondissait :
 
-2/3==-1 reste 1
 

n°1097593
Taz
bisounours-codeur
Posté le 26-05-2005 à 09:32:02  profilanswer
 

ooops, je testé bêtement en python pour aller vite. Donc en C, c'est bien la division entière, mais en python, c'est bien le modulo mathématique.
 
Emmanuel > c'est pas un peu bordélique ça ?

n°1097599
pains-aux-​raisins
Fatal error
Posté le 26-05-2005 à 09:34:05  profilanswer
 

Taz a écrit :

ooops, je testé bêtement en python pour aller vite. Donc en C, c'est bien la division entière, mais en python, c'est bien le modulo mathématique.
 
Emmanuel > c'est pas un peu bordélique ça ?


Les joies des spécificités des langages :D

n°1097607
Taz
bisounours-codeur
Posté le 26-05-2005 à 09:44:05  profilanswer
 

ce que je comprends pas trop, c'est la mathématiciens qui poussent pour avoir le type complexe, mais si y a déjà pas tous les opérateurs ...

n°1097612
Emmanuel D​elahaye
C is a sharp tool
Posté le 26-05-2005 à 09:46:21  profilanswer
 

Taz a écrit :

ooops, je testé bêtement en python pour aller vite. Donc en C, c'est bien la division entière, mais en python, c'est bien le modulo mathématique.
 
Emmanuel > c'est pas un peu bordélique ça ?


Seul compte ce qui est ecrit dans le document de définition du langage. Il faut parfois avaler quelques couleuvres...
Miam !
 
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1101842
chicotruss
Posté le 30-05-2005 à 15:37:30  profilanswer
 

D'apres mes souvenirs de maths, le modulo est le reste de la division entiere de deux nombres (entiers), mais il n'a de sens que si les 2 opérandes sont positives.
 
Donc mathématiquement, -9 mod 8 n'as pas de sens.
 
(Information a verifier tout de meme  :sarcastic: )

n°1101905
pains-aux-​raisins
Fatal error
Posté le 30-05-2005 à 16:28:19  profilanswer
 

chicotruss a écrit :

D'apres mes souvenirs de maths, le modulo est le reste de la division entiere de deux nombres (entiers), mais il n'a de sens que si les 2 opérandes sont positives.
 
Donc mathématiquement, -9 mod 8 n'as pas de sens.
 
(Information a verifier tout de meme  :sarcastic: )


 
si, on peut généraliser la division euclidienne dans Z. Dans ce cas, a mod b peut être négatif si a est négatif. par contre b se doit d'être un naturel non nul.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  modulo négatif?

 

Sujets relatifs
probleme avec moduloFonction Modulo en SQL sous Access
[C++] modulo et doublelibrairie sur les matrices comprenant les modulo
[Programmation C] Modulo - pb de comprehension du prog[Access](reponse) Renvoyer Zéro si le contenu du champ est négatif ?
Equivalent de MODULO en PHP ?Comment fait ton pour avoir un float négatif???
multiplication, division, soustraction et modulo en base xProbleme de division et modulo
Plus de sujets relatifs à : modulo négatif?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)