Bonjour,
existe-il une fonction permettant de réaliser directement un complément à 2?
Merci.
Bonjour,
existe-il une fonction permettant de réaliser directement un complément à 2?
Merci.
Envoyé par sandball22
Jc
Code : Sélectionner tout - Visualiser dans une fenêtre à part int y = (~x) + 1;
[EDIT] en effet, il faut un +1[/EDIT]
C'est le complément à 1 ça, non ?Envoyé par fearyourself
Pour moi, ce serait plutôt :
Code : Sélectionner tout - Visualiser dans une fenêtre à part int y = ~x + 1;
Exact, c'est corrigéEnvoyé par Freed0
![]()
Jc
Il vaut mieux eviter de faire des manipulations de bits avec des entiers signes.
Et le complement a 2 s'ecrit alors - en C.
Cela ne marche pas. J'obtiens des chiffres erronés.
En effet, j'utilise ce code. Dans cette boucle for, je récupère un tableau de binaires que je mets dans le tableau phas[i].
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 for(i=0;i<24;i++) { phas[i] = phase[i]; printf("%d",phas[i]); phas[i] = ~phas[i]+1; printf("%d",phas[i]); }
Voila ce que j'obtient en simulant : 02551254125402551254025502550255025502551.......
S'il vous plaît, ajoutez des espaces entre les éléments...Envoyé par sandball22
Ce code affiche le complément à deux de chaque élément du tableau sans erreur:
qui affiche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 #include <stdio.h> #include <stdlib.h> #define ARRAY_SIZE(tab) (sizeof (tab)/sizeof *(tab)) int main(void) { int i; unsigned int tableau[10]; for (i = 0; i < ARRAY_SIZE(tableau); ++i) { tableau[i] = i; } for (i = 0; i < ARRAY_SIZE(tableau); ++i) { printf("%d: Le complément à 2 de %x est %x\n", i, tableau[i], ~tableau[i] + 1); } return EXIT_SUCCESS; }
Je ne sais pas de quel type sont les éléments de ton tableau phas, mais comme l'a signalé Jean-Marc Bourguet, il vaut mieux se limiter aux entiers non-signés pour effectuer des opérations bit par bit.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 0: Le complément à 2 de 0 est 0 1: Le complément à 2 de 1 est ffffffff 2: Le complément à 2 de 2 est fffffffe 3: Le complément à 2 de 3 est fffffffd 4: Le complément à 2 de 4 est fffffffc 5: Le complément à 2 de 5 est fffffffb 6: Le complément à 2 de 6 est fffffffa 7: Le complément à 2 de 7 est fffffff9 8: Le complément à 2 de 8 est fffffff8 9: Le complément à 2 de 9 est fffffff7
Thierry
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
Partager