Operateur<< en C
Fermé
InAme19
Messages postés
539
Date d'inscription
samedi 13 septembre 2008
Statut
Membre
Dernière intervention
29 novembre 2012
-
23 nov. 2009 à 10:22
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 - 23 nov. 2009 à 17:14
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 - 23 nov. 2009 à 17:14
7 réponses
toto1983
Messages postés
205
Date d'inscription
samedi 16 mai 2009
Statut
Membre
Dernière intervention
25 mars 2010
13
23 nov. 2009 à 10:55
23 nov. 2009 à 10:55
Essaie de faire un transtypage (conversion en int de ta variable double)
double mavariable;
int mavariableint;
mavariableint = (int) mavariable;
tu traite 'mavariableint', voilà ;)
Si ça marche pas on verra ensemble le problème
double mavariable;
int mavariableint;
mavariableint = (int) mavariable;
tu traite 'mavariableint', voilà ;)
Si ça marche pas on verra ensemble le problème
InAme19
Messages postés
539
Date d'inscription
samedi 13 septembre 2008
Statut
Membre
Dernière intervention
29 novembre 2012
62
23 nov. 2009 à 11:26
23 nov. 2009 à 11:26
oui d'accord mais cela me pose un petit soucis...
j'aimerai utiliser un double car c'est sur 8 octets contrairement à un int ou un long qui sont sur 4 octets.
Donc par exemple j'ai un entier égal à 1
en binaire on a: 0000 0000 0000 0000 0000 0000 0000 0001 pour un double
0000 0000 0000 0001 pour un int
et j'aimerai mettre le bit à 1 tout à gauche. si je traite un int ça me rendra 1000 0000 0000 0000.
donc si ensuite je fais mavariable = mavariableint, ça me donnerai 0000 0000 0000 0000 1000 0000 0000 0000.
D'où le soucis... je veux juste décaler les bits d'un double mais j'ai l'impression que l'on ne peux pas utiliser les opérateurs binaires directement sur un double.
Donc la solution qui me viendrai à l'esprit c'est de travailler sur un int comme tu l'as suggérer mais il faudrai concaténer à un autre (ici ça serait int1= 1000 0000 0000 0000 et int2=0000 0000 0000 0000) mais je ne vois pas comment faire...
j'aimerai utiliser un double car c'est sur 8 octets contrairement à un int ou un long qui sont sur 4 octets.
Donc par exemple j'ai un entier égal à 1
en binaire on a: 0000 0000 0000 0000 0000 0000 0000 0001 pour un double
0000 0000 0000 0001 pour un int
et j'aimerai mettre le bit à 1 tout à gauche. si je traite un int ça me rendra 1000 0000 0000 0000.
donc si ensuite je fais mavariable = mavariableint, ça me donnerai 0000 0000 0000 0000 1000 0000 0000 0000.
D'où le soucis... je veux juste décaler les bits d'un double mais j'ai l'impression que l'on ne peux pas utiliser les opérateurs binaires directement sur un double.
Donc la solution qui me viendrai à l'esprit c'est de travailler sur un int comme tu l'as suggérer mais il faudrai concaténer à un autre (ici ça serait int1= 1000 0000 0000 0000 et int2=0000 0000 0000 0000) mais je ne vois pas comment faire...
toto1983
Messages postés
205
Date d'inscription
samedi 16 mai 2009
Statut
Membre
Dernière intervention
25 mars 2010
13
23 nov. 2009 à 11:32
23 nov. 2009 à 11:32
Tu crois pas si bien dire :/ ...
"Ce sont des opérateurs que l'on trouve plus souvent dans les langages d'assemblage que dans les langages de haut-niveau. On retrouve toutes (ou presque) les opérations de manipulation de bits possibles. Elles ne s'appliquent pas, bien entendu, aux float et aux double"
source : http://handy.univ-lyon1.fr/service/cours/lamot/node40.html
Après je suis sur que tu es sur la bonne voie, mais essaie de voir des tutoriels afin de maîtriser les types et leurs intéractions . Moi dsl g pas trop le time, je t'aurais aidé avec plaisir
"Ce sont des opérateurs que l'on trouve plus souvent dans les langages d'assemblage que dans les langages de haut-niveau. On retrouve toutes (ou presque) les opérations de manipulation de bits possibles. Elles ne s'appliquent pas, bien entendu, aux float et aux double"
source : http://handy.univ-lyon1.fr/service/cours/lamot/node40.html
Après je suis sur que tu es sur la bonne voie, mais essaie de voir des tutoriels afin de maîtriser les types et leurs intéractions . Moi dsl g pas trop le time, je t'aurais aidé avec plaisir
InAme19
Messages postés
539
Date d'inscription
samedi 13 septembre 2008
Statut
Membre
Dernière intervention
29 novembre 2012
62
23 nov. 2009 à 11:35
23 nov. 2009 à 11:35
ok merci, je vais voir ça. Je mettrai la solution si je la trouve ^^
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
toto1983
Messages postés
205
Date d'inscription
samedi 16 mai 2009
Statut
Membre
Dernière intervention
25 mars 2010
13
23 nov. 2009 à 11:36
23 nov. 2009 à 11:36
Ouais merci, pasque moi j'apprends plutôt des erreurs des autres ;)
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
23 nov. 2009 à 15:28
23 nov. 2009 à 15:28
Ne vous est-il pas venu à l'esprit qu'il existe plusieurs espèces d'int ?
On trouve des courts appelés 'short', des normaux et des longs.
Sur nos machines, on a donc la possibilité d'avoir des longueurs de 2, 4 ou 8 octets. Cela pourrait peut-être résoudre le problème.
Bonne continuation.
On trouve des courts appelés 'short', des normaux et des longs.
Sur nos machines, on a donc la possibilité d'avoir des longueurs de 2, 4 ou 8 octets. Cela pourrait peut-être résoudre le problème.
Bonne continuation.
InAme19
Messages postés
539
Date d'inscription
samedi 13 septembre 2008
Statut
Membre
Dernière intervention
29 novembre 2012
62
23 nov. 2009 à 16:29
23 nov. 2009 à 16:29
Oui j'y ai pensé, mais les int et les long font 4 octets tous les deux ( sur ma machine en tous cas )...
le seul à atteindre 8 octets est le double.
le seul à atteindre 8 octets est le double.
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
23 nov. 2009 à 17:14
23 nov. 2009 à 17:14
Oui souvent les longs sont comme les normaux... mais il y a aussi les super longs.
As-tu essayé des 'long long' ou 'long long int' ?
Bonne soirée.
As-tu essayé des 'long long' ou 'long long int' ?
Bonne soirée.