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

  FORUM HardWare.fr
  Programmation
  C

  [C] nombres binaires

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] nombres binaires

n°1823202
abaddon200​2
Posté le 07-12-2008 à 16:32:45  profilanswer
 

bonjour,
 
j'ai une petite question toute bête..
 
Comment travailler directement avec des nombres binaires en C ?
 
Lorsque je travaille avec des nombres en hexadécimal je précède mes nombres de 0x, en octal de 0, mais je ne connais pas le préfixe pour le binaire. J'ai essayé 0b mais c'est pas ça vu le message du compilateur (gcc)...
 
merci pour votre aide.
 
A+

mood
Publicité
Posté le 07-12-2008 à 16:32:45  profilanswer
 

n°1823239
Joel F
Real men use unique_ptr
Posté le 07-12-2008 à 17:33:50  profilanswer
 

Y a pas de prefixes de tete.
Tu veut faire quoi ? Car bon les opérations bit à  bit répondent certaienemnt à tes besoins

n°1823253
abaddon200​2
Posté le 07-12-2008 à 17:50:06  profilanswer
 

En fait je dois affecter des valeurs sur un bus de 8 bits.. qui n'ont de sens que bit à bit. En effet, le bit 7 représente par exemple la validation en écriture sur mon dispositif, les bits 0 à 4 les données. etc.. et je peux très bien écrire directement la valeur en décimal, mais à lire par la suite c'est hautement incompréhensible, alors que si on lit directement la valeur en binaire dans le code, on comprend tout de suite ce qu'il fait...

n°1823258
ptitchep
Posté le 07-12-2008 à 17:59:33  profilanswer
 

Utilise la représentation hexa ou fait des masques pour extraire les infos.


---------------
deluser --remove-home ptitchep
n°1823260
esox_ch
Posté le 07-12-2008 à 18:07:07  profilanswer
 

+1
 
L'année dernière j'ai du programmer un micro-controlleur qui communiquait vers l'exterieur via SPI. Au début je trouvais plus "clair" d'écrire directement les nombres en binaire (comme ça je pouvais directement "voir" si ça passait bien avec un oscilloscope, mais après un moment (et surtout quand les trames deviennent longues) c'est juste un bordel de compter les 1/0. En hexa c'est beaucoup mieux (mais faut un peu d'habitude :o)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1823303
abaddon200​2
Posté le 07-12-2008 à 20:18:46  profilanswer
 

bon c'est ce que j'ai fait... ça fonctionne très bien... mais dans le fond.. juste pour la culture... Y'a-t-il quand même moyen d'écrire directement des entiers en binaire avec gcc?

n°1823394
xilebo
noone
Posté le 08-12-2008 à 09:33:41  profilanswer
 

Non, on ne peut pas écrire directement en binaire.
 
Par contre, pour les manipuler facilement (outre les masques en hexa), il y a les champs de bits.

n°1823418
matafan
Posté le 08-12-2008 à 10:15:33  profilanswer
 

Non, les champs de bits ne sont pas faits pour ça. Dans un champs de bits, tu ne peux pas savoir a priori à quel bit correspond un champs donné. Certains compilos commencent par les bits de poid fort, d'autres pas les bits de poid faible. Utiliser un champs de bits pour accéder à des bits précis d'un mot n'est donc absolument pas portable.

n°1823519
Edwardkei
Posté le 08-12-2008 à 12:22:07  profilanswer
 

Certains compilateurs permettent de manier directement des bits avec le préfixe "0b" mais mieux vaut utiliser des nombres hexadécimaux et/ou des masques.

n°1823579
Joel F
Real men use unique_ptr
Posté le 08-12-2008 à 14:16:02  profilanswer
 

Edwardkei a écrit :

Certains compilateurs permettent de manier directement des bits avec le préfixe "0b".


je suis bien curieux de savoir lesquels :o

mood
Publicité
Posté le 08-12-2008 à 14:16:02  profilanswer
 

n°1823606
stan walke​r
Yeahhhhhhhhhhh
Posté le 08-12-2008 à 15:19:26  profilanswer
 

Je n'ai jamais vu le préfixe 0b ! GDB permet de manier directement les chiffres en binaire, mais c'est uniquement pour debugguer un programme C / C++ (et bien d'autre !)
 
La meilleure solution est encore d'utiliser la base hexadécimal, qui est la plus simple à transcrire (de tête) vers le binaire.


---------------
~~~ --- Toutla.com --- Programmation, Graphisme, Curseur ~~~
n°1831013
ITM
Avatar peint à la main
Posté le 23-12-2008 à 22:55:59  profilanswer
 

Joel F a écrit :


je suis bien curieux de savoir lesquels :o


 

stan walker a écrit :

Je n'ai jamais vu le préfixe 0b !


"0b" existe bel et bien sur des compilo propriétaires pour du matos spécifique (exemple : MCC18)


---------------
iteme.free.fr | Mon feedback

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

  [C] nombres binaires

 

Sujets relatifs
Problème de réels en CFlash CS3 et CS4 dans application C++
ASM et TURBO CFonction automatique d'escape string en C# ?
Compilation MySQL avec C++ Builder 2006 [Resolu]Problème d'exec() d'un programme C++ sous PHP
C# DLLDLL with C#
[C] POSIX message queues : #define MQ_MAXMSG 10 ??? 
Plus de sujets relatifs à : [C] nombres binaires


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR