IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

variable 16 bits ?


Sujet :

C++

  1. #1
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    32
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 32
    Par d�faut variable 16 bits ?
    Bonjour,

    Quelle sont les variables que l'on peux mettre sous builder sous 16 bits ?
    J'ai entendu parler de short int, est-ce une 16 bits ?

  2. #2
    R�dacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en s�curit�
    Inscrit en
    Mai 2007
    Messages
    11 517
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Consultant en s�curit�
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par d�faut
    En g�n�ral oui mais tu peux faire le test
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    if(sizeof(short int) == 2)
    {
    ...
    }
    Raymond
    Vous souhaitez participer � la rubrique R�seaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs syst�me et r�seau � configurer leurs �quipements SNMP r�seau.
    e-verbe Un logiciel de conjugaison des verbes de la langue fran�aise.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    32
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 32
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    short int tableau[1] = {0x0000}
    ComPort1->Write(tableau, 1);
    J'ai fait le test avec �a et malheureusement �a ne marche pas mais je sais pourquoi.. mon port s�rie est configur� en 8 bits, ne peut-on pas le mettre en 16 ?

  4. #4
    R�dacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en s�curit�
    Inscrit en
    Mai 2007
    Messages
    11 517
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Consultant en s�curit�
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par d�faut
    En g�n�ral, un port s�rie est utilis� pour envoyer des octets (donc 8 bits). Je ne connais pas de ports s�rie sur lequel tu peux envoyer des words (2 octets)
    Raymond
    Vous souhaitez participer � la rubrique R�seaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs syst�me et r�seau � configurer leurs �quipements SNMP r�seau.
    e-verbe Un logiciel de conjugaison des verbes de la langue fran�aise.

    Ma page personnelle sur DVP
    .

  5. #5
    Membre �m�rite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par d�faut
    Je n'ai jamais utilis� de port s�rie mais
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    short int tableau[1] = {0x0000}
    ComPort1->Write((char*)tableau, sizeof(short int)*1);
    �a revient pas au m�me?

    Sinon, quand on veut un type cod� sur un certain nombre de bits ce n'est pas une bonne id�e de faire des suppositions sur le types normaux, ils sont susceptibles de changer quand on bascule vers une autre archi/un autre os/voire m�me un autre compilo. Il existe des typedefs pour �a dans un grand nombre de biblios y compris dans la biblio standard (si elle est suffisamment � jour). Dans ce dernier cas, le header � inclure est <stdint.h>.

  6. #6
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    32
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 32
    Par d�faut
    en effet, �a reviens au m�me mais bon but �tait d'envoyer un signal de 16 bits. Bref ce n'est pas possible.

    Autre question, peut-on mettre le port TX au niveau logique 1 ou 0 ? (sans avoir de trames, bit de start ou bit de stop...)

  7. #7
    R�dacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en s�curit�
    Inscrit en
    Mai 2007
    Messages
    11 517
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Consultant en s�curit�
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par d�faut
    Peut �tre en jouant avec les signaux RTS/CTS et DTR/DSR. Il existe une notion de BREAK, il faut voir comment le signal TX est positionn� lors d'un break.
    Raymond
    Vous souhaitez participer � la rubrique R�seaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs syst�me et r�seau � configurer leurs �quipements SNMP r�seau.
    e-verbe Un logiciel de conjugaison des verbes de la langue fran�aise.

    Ma page personnelle sur DVP
    .

  8. #8
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    32
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 32
    Par d�faut
    j'ai cherch� un peu ce qu'il y avait sur le break mais rien de tr�s int�ressant, disons qu'il n'influe pas sur le TX.

    Bon malheureusement je vais devoir me r�soudre � acheter un adaptateur usb - dmx... Je pensais pouvoir le faire avec une simple trame rs-232 mais ce 88us me fou tout en l'air !

    merci pour tout

  9. #9
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Salut,

    Si tu veux jouer avec des bits, peut �tre devrais tu te tourner vers... la classe bitset... tout simplement

    Tu verra, elle est particuli�rement utile pour la gestion des bits
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  10. #10
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    32
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 32
    Par d�faut
    bitset ?? c'est la premi�re fois que j'en entend parler !
    Aurait-tu un tuto, une page sur laquelle on en parle ?
    J'ai regard� sur le net.. pas grand chose

  11. #11
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    2 155
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 2 155

  12. #12
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    32
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 32
    Par d�faut
    oula je ne comprend pas tout ! A quoi peut service ce bitset ? Pour ma part j'aimerais juste enlever un bit de stop au d�but de ma trame qui fou sa me***.

  13. #13
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    N'est-ce pas plut�t un bit de start que tu veux retirer, s'il est au d�but?
    Attention, l'UART fait la diff�rence : Y'en a un des deux qui est plus ou moins r�glable, l'autre non...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  14. #14
    Membre Expert

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par d�faut
    Citation Envoy� par ram_0000 Voir le message
    En g�n�ral oui mais tu peux faire le test
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    if(sizeof(short int) == 2)
    {
    ...
    }
    Pas tout � fait:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    if (std::numeric_limits<short>::digit == 16)
    {
    }
    Permet d'�tre plus s�r, �tant donn� que sizeof() renvoie un nombre de byte, et que le nombre de bits d'un byte n'est pas d�fini (et vous n'avez certainement pas eu le plaisir de bosser avec des bytes de 32 bits...)

    Quoi qu'il en soit, la taille d'un short n'est pas d�finie par le standard C++: elle peut donc varier d'une configuration � l'autre. Seule la relation

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    (sizeof(char) == 1) <= sizeof(short) <= sizeof(int) <= sizeof(long)
    est d�finie.

    Si ton compilateur est compatible avec le standard C99 (ce n'est pas le cas de Visual C++ .Net 2005), tu peux utiliser les types intN_t (int8_t, int16_t, ...) et uintN_t (uint8_t, uint16_t) d�finis dans <stdint.h>. La prochaine norme C++ d�finira aussi ces types (ce qui n'est pas le cas dans la version 2003 du standard).

    Sinon, tu peux aussi d�cider de te limiter � un compilateur que tu connais, et vogue la gal�re. Une fois le programme compil�, la taille des types ne change pas, donc si elle est connue au moment de la compilation, tout est ok.
    [FAQ des forums][FAQ D�veloppement 2D, 3D et Jeux][Si vous ne savez pas ou vous en �tes...]
    Essayez d'�crire clairement (c'est � dire avec des mots fran�ais complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Caf�. C'est d�pass� tout �a.
    Et si vous �tes sages, vous aurez peut �tre vous aussi la chance de passer � la t�l�. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  15. #15
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    tibo7: En clair, tu cherches � communiquer par port s�rie avec un truc qui n'est pas compatible RS232 ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  16. #16
    Membre �m�rite

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    717
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 717
    Par d�faut
    Citation Envoy� par Emmanuel Deloget Voir le message
    Pas tout � fait:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    if (std::numeric_limits<short>::digit == 16)
    {
    }
    Chez moi std::numeric_limits<short>::digit vaut 15 et n'a peu de rapport avec la taille d'un type.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    if (sizeof(short)*CHAR_BIT == 16)
    {
    }

  17. #17
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    C'est exactement la raison pour laquelle on d�conseille de faire la moindre supposition sur la taille des types de base...

    C'est aussi la raison pour laquelle je proposais d'utiliser un bitset.

    Ainsi, si tu cr�e un bitset d'une taille de... 16 bits en l'occurrence, tu place les diff�rents bits � la valeur qui t'int�resse, puis il ne te reste "plus qu'�" les envoyer dans l'ordre dans lequel ils sont attendus
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  18. #18
    Membre Expert

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par d�faut
    Citation Envoy� par Sylvain Togni Voir le message
    Chez moi std::numeric_limits<short>::digit vaut 15 et n'a peu de rapport avec la taille d'un type.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    if (sizeof(short)*CHAR_BIT == 16)
    {
    }
    Manque le bit de signe. De toute fa�on, la valeur de digits d�pends des impl�mentation. La "solution": passer par le m�me type, mais non sign�.
    [FAQ des forums][FAQ D�veloppement 2D, 3D et Jeux][Si vous ne savez pas ou vous en �tes...]
    Essayez d'�crire clairement (c'est � dire avec des mots fran�ais complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Caf�. C'est d�pass� tout �a.
    Et si vous �tes sages, vous aurez peut �tre vous aussi la chance de passer � la t�l�. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

Discussions similaires

  1. R�ponses: 4
    Dernier message: 30/05/2011, 21h22
  2. [D�butant] Type variable 64 bits
    Par crimetime dans le forum C
    R�ponses: 8
    Dernier message: 04/06/2010, 17h50
  3. d�claration de variables de 16, 32 et 128 bits
    Par samipate dans le forum C++
    R�ponses: 10
    Dernier message: 30/12/2004, 22h33
  4. tester l'�tat d'un bit d'une variable
    Par jphi5 dans le forum C
    R�ponses: 5
    Dernier message: 15/09/2003, 13h17
  5. Comparaison d'un registre 8 bits avec une variable 32 bits
    Par tupperware dans le forum x86 32-bits / 64-bits
    R�ponses: 3
    Dernier message: 15/10/2002, 10h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo