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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2020
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2020
    Messages : 88
    Par défaut Pourquoi je ne vois pas un fichier binaire avec des 0 et des 1 après compilation d'un helloWord en C ?
    Bonjour,

    J'ai fait le premier programme que tout le monde fait en premier lieu, un helloWord.c.
    Code source ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #include <stdio.h>
    #include <stdlib.h>
     
    int main(void)
    {
    	printf("Hello Word\n");
     
    	return EXIT_SUCCESS;
    }
    Je le compile avec Gcc :
    gcc helloWord.c -o helloWord.exe

    MAIS,

    Lorsque j'ouvre mon helloWord.exe avec mon éditeur de texte j'ai des "hiéroglyphe".
    Pourquoi je ne vois pas un fichier binaire avec des 0 et des 1 ou un fichier en caractère hexadécimal ?

  2. #2
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 546
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 546
    Par défaut
    Citation Envoyé par zephyre Voir le message
    Lorsque j'ouvre mon helloWord.exe avec mon éditeur de texte j'ai des "hiéroglyphe".
    parce que l'éditeur de texte ouvre le fichier comme un fichier texte et non un fichier binaire donc il affiche des codes ASCII ou Unicode donc il faut utiliser un éditeur de fichier binaire.
    Sinon avec Visual Studio on peut examiner la mémoire à une adresse donnée et avoir du code hexadécimal

  3. #3
    Membre chevronné
    Homme Profil pro
    très occupé
    Inscrit en
    Juillet 2014
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : très occupé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 137
    Par défaut
    Pour voir le contenu de ton fichier binaire en hexadécimal, tu doit utiliser un éditeur hexadécimal (et non un éditeur de texte).

    https://www.google.com/search?q=éditeur+hexadécimal

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 867
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 867
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par zephyre Voir le message
    Pourquoi je ne vois pas un fichier binaire avec des 0 et des 1 ou un fichier en caractère hexadécimal ?
    Tu confonds "ce qui est" et "comment on te le montre". Si j'affiche 01100111 d'une certaine manière j'aurai 0x67, d'une autre manière j'aurai 0141 et encore d'une autre j'aurai 'a'.
    Un éditeur de texte est fait pour afficher un fichier texte (human readable). Si tu affiches autre chose avec, ton éditeur fait ce qu'il peut mais il n'est pas adapté. C'est comme si tu essayais d'ouvrir un film avec paint.
    T'es vraiment ingénieur pour pas savoir ça ???
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 698
    Par défaut 07734
    Bonjour SVE,

    La question est très légitime, me semble-t-il. Puisque tout est binaire sur un ordinateur, pourquoi cette saloperie me montre autre chose que des 0 et de 1 ? Tiens, ce message par exemple, ne serait il pas plus intéressant à la Matrix ?

    Citation Envoyé par Sve@r Voir le message
    ...T'es vraiment ingénieur pour pas savoir ça ???
    Ingénieur conseil n'oblige pas à savoir faire...

    Salut

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 867
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 867
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Guesset Voir le message
    Puisque tout est binaire sur un ordinateur pourquoi cette saloperie me montre autre chose que des 0 et de 1 ?
    Tout est binaire certes, mais juste au plus bas niveau, celui des courants électriques qui passent ou ne passent pas ; et sur un disque au niveau du pixel magnétique qui est orienté à gauche ou à droite.
    Ensuite les éléments binaires sont assemblés en groupes de 8 appelés "octets" (c'est purement arbitraire, ça aurait pu être des groupes de 7 ou des groupes de 12 toutefois le nombre "8" étant une puissance parfaite de deux, c'est peut-être pour ça qu'il a été choisi comme facteur de regroupement) et ces groupes de 8 sont associés à un alphabet, là aussi purement arbitraire, nommé "table ascii" (officiellement "iso-latin-9"). Ainsi le groupe 01100111 signifie 'a', et le groupe 01101000 (le "+1" du précédent) signifie 'b' (et c'est pour cela qu'en C, 'a' + 1 = 'b').
    Partant de là, si un outil a pour but de lire un flux binaire et de l'afficher à l'écran, il est alors normal qu'il le lise par groupe de 8 et fasse ensuite correspondre le groupe lu au caractère correspondant dans l'alphabet de référence car c'est généralement l'usage qu'on attend de lui (enfin si on part du postulat que la majorité préfère voir un texte écrit dans notre alphabet auquel elle est habituée).
    De là deux possibilités
    • ce groupe correspond à ce qu'on nomme un "caractère affichable" (un caractère qui peut s'afficher à l'écran, tel "a", "b", "é", "*", "%" bref tous les caractères de ton clavier) et l'outil l'affiche naturellement
    • ce groupe ne correspond pas à un caractère affichable (parce que certains caractères servent à des actions spéciales tel le '\n' (0x0a) qui sert à aller à la ligne suivante ; ou le ctrl-g (0x07) qui produisait un "beep" sonore sur les apple) et dans ce cas, cette "saloperie" (que moi j"appelerais plus honnêtement "outil non adapté à l'usage qu'on veut en faire") fait ce qu'il peut. Mais ça reste qu'un outil auquel tu lui demandes une action qui n'est pas prévue. Et pire, imaginons que tu aies un fichier qui contienne "abc" (donc en binaire 011001110110100001101001 et je fais exprès de ne pas mettre d'espace facilitant la lecture) et que l'outil t'affiche le texte "011001110110100001101001", comment feras-tu le jour où tu veux avoir les lettres "abc" à l'écran?


    Donc tout n'est que conventions et format et traduction de ces conventions si elles sont connues. Par exemple il ne te viendrait pas à l'idée de tenter d'ouvrir un mp3 sous Excel parce que tu sais déjà que Excel ne sait pas lire le mp3 (et probablement inconsciemment tu en devines la raison: le format "mp3", la façon dont les 0/1 ont été regroupés à l'intérieur, n'est pas connue de Excel qui n'est pas prévu pour ça). Cela d'ailleurs devrait te faire réfléchir sur la crédibilité du film "Indépendance Day" ou les héros arrivent à dialoguer avec un ordinateur E.T. via réseau (!!!) pour lui balancer un virus (ouais bon ben le protocole, l'encoding et l'endianness tout ça on s'en balance hein...)

    Mais il existe aussi des outils spécialement dédiés. Par exemple il existe sur Linux un outil nommé "od" (Octal Dump). Contrairement à ce que laisse supposer son nom, il peut t'afficher un fichier au format de ton choix : en hexa, en octal et même en ascii. Et dans ce dernier cas, si le caractère qu'il doit afficher n'est pas affichable, il affiche un point à la place.

    Citation Envoyé par Guesset Voir le message
    Tiens, ce message par exemple, ne serait il pas plus intéressant à la Matrix ?
    Ca peut se programmer. Surtout en C qui est capable de descendre au niveau du bit. C'est à dire que sa base de lecture IO c'est l'octet mais il possède des opérateurs mathématiques permettant ensuite d'isoler chaque bit de cet octet. Mais c'est pareil, affiché en ligne ou à la Matrix, tout est question de conventions.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 698
    Par défaut
    Bonjour Sve,
    Citation Envoyé par Sve@r Voir le message
    Tout est binaire certes, mais juste au plus bas niveau...
    Je te remercie de tes explications très détaillées que je ne croyais pas déclencher par ma boutade.

    Ceci étant, il y a du binaire qui ne l'est pas tant que ça. Je pense aux codages multilevels des SSD qui stockent de 4 à 16 états par cellule qu'il faut ensuite recoder en 2 à 4 bits (il y a aussi les nuages d'états des modulations en quadrature). Bientôt l'analogique, le retour ?

    Salut

  8. #8
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 698
    Par défaut Capillotracté ?
    Bonjour,

    Dans beaucoup de boites, Ingénieur conseil signifie commercial. Je présume qu'ils pensent que cela sonne mieux.

    Salutations

  9. #9
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    T'es vraiment ingénieur pour pas savoir ça ???
    Je ne pense pas qu'il l'est, vu son historique ,il semble débutant en programmation.
    En tout cas si il est employé comme ingénieur en informatique, c'est en effet inquiétant ,vu qu'il ne semble pas maîtriser de nombreuse bases...

  10. #10
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 397
    Par défaut
    Il est peut-être tout simplement ingénieur en autre chose que l'informatique.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] pourquoi vba ne lire pas deux fichier txt ses sont même format
    Par SBAY3I dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 12/08/2018, 17h05
  2. Réponses: 12
    Dernier message: 03/01/2009, 00h45
  3. Réponses: 11
    Dernier message: 15/09/2008, 11h25
  4. Partage de fichier windows avec des sous réseaux différents
    Par Annaced dans le forum Administration
    Réponses: 4
    Dernier message: 07/06/2006, 22h40
  5. probleme d'import de fichier txt avec des tab
    Par lecureuil dans le forum Access
    Réponses: 4
    Dernier message: 23/08/2005, 20h22

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