bonsoir,
s'il vous plait je veux une fonction qui prend comme paramètre un entier de type unsigned long et le transforme en son complémentaire ,
je ne sais pas comment calculer le complémentaire , et merci d'avance
-----

bonsoir,
s'il vous plait je veux une fonction qui prend comme paramètre un entier de type unsigned long et le transforme en son complémentaire ,
je ne sais pas comment calculer le complémentaire , et merci d'avance
S'il s'agit d'un complément bit à bit, c'est l'opérateur ~ en langage C.je ne sais pas comment calculer le complémentaire
A toi d'écrire maintenant le code de la fonction car il ne faut pas compter sur le forum pour te fournir une solution clé en mains.
bonsoir;
merci pour votre reponse ,
voilà mon code
est ce que c'est juste ?Code:transform(undesigned long x) { int i=0,p,s,a,r; while(x!=0) {p=x/10; x=p; i++; } while(x!=0) { a=x/2; r=x%2; x=a; if(r==0) r=1; if(r==1) r=0; s=s+r*pow(10,i+1); } return s ; }
merci d'avance![]()
Dernière modification par Jack ; 24/10/2014 à 00h11. Motif: Balises code
La moindre des politesses, quand on s'attend à ce que des gens passent du temps à répondre est de lire les consignes du forum info.
http://forums.futura-sciences.com/pr...ves-forum.html
=> Balises code
Dernière modification par JPL ; 24/10/2014 à 17h09. Motif: Activation du lien
C'est quoi cette usine à gaz? Tu as lu ma réponse au moins? Ma version me semble un tout petit peu plus simple:
Etonnant, non?Code:transform(undesigned long x) { return ~x; }
ah ok merci beaucoup![]()
J'ai de gros doutes sur le "undesigned" et sur le fait de ne pas donner de type à ta fonction.
Tu peux aussi essayer de compiler, avant de poster. Ça aide ...
Oui c'est vrai, j'étais tellement surpris par le code que j'en ai oublié l'entête. Après rectification, l'entête devient donc:
unsigned long tramsform(insigned long x)
Pourquoi pas, en effet. C'est toujours le même problème lorsque la question est insuffisamment précise.Je revient sur ta fonction originelle parce qu'il me semble que tu essaie de calculer le complément à 10. La solution de Jack te donne le complément à 2 (en binaire).
A+
Dernière modification par Jack ; 24/10/2014 à 17h27.
Par ailleurs, ta fonction est absurde : tu fais une première boucle tant que x différent de 0. A la fin tu es donc sur que x vaut 0, et là tu fais une seconde boucle tant que x différent de 0. On est donc sur de ne jamais entrer dans la deuxième boucle.
Je revient sur ta fonction originelle parce qu'il me semble que tu essaie de calculer le complément à 10. La solution de Jack te donne le complément à 2 (en binaire).
Mais je me trompe peut-être ...
oh comme je suis stupide !je suis desolé pour ma mauvaise reponse ..
,
et merci pour vos reponse![]()
hum c'est pas aussi une maniere pour faire bouillonner ceux qui lisent ce forum et se disent mais il/elle nous fait quoi , il suffit de lire le kernighan et ritchie ....
on va mettre en place un systeme payant
plus vous mettez des informations et plus vous faites un effort c'est gratuit
sinon cela servira pour la maintenance du site ou donner des cours d'informatique à ceux qui viennent poster ici
