Accueil > Forum > > > > mystère hexadécimal
mystère hexadécimal
samedi 6 mars 2004 à 20:45:16 |
mystère hexadécimal

remzz
|
Bonjour à tous, Je débute alors peut-être ma question est-elle idiote. La voici : Avec l'extrait de code suivant (en C) : ------------------ char* key; int studentid = 9942; ... printf("key[6] = %x\n",(studentid & 255)); key[6] = (studentid & 255); printf("key[6] = %x\n",key[6]); ------------------- J'obtiens deux réponses différentes : ------------------ key[6] = d6 key[6] = ffffffd6 ------------------ Quelqu'un peut m'expliquer pourquoi je n'obtiens pas la même chose ? Ils sortent d'où tous ces FFFFFF ? Merci, Rémy
|
|
samedi 6 mars 2004 à 22:27:24 |
Re : mystère hexadécimal

LordBob
|
je peux dire une connerie mais pour afficher la valeur d'un pointeur il ne faut pas faire: | printf("key[6] = %x\n",*key[6]); |
je peux pas tester la... et la je cherche un bon tuto que j'vais trouver sur les pointeurs !!! Bob... "La chance accorde ses faveur aux esprits avertis..."
|
|
dimanche 7 mars 2004 à 00:34:21 |
Re : mystère hexadécimal

remzz
|
Non, il me semble que c'est la bonne méthode pour afficher le contenu d'un tableau. De plus il affiche toujours la valeur que j'ai attribuée avant, mais avec systématiquement ffffff devant. Si j'affiche la valeur en tant qu'entier (%i), j'obtiens un nombre négatif. Ce que je ne comprends pas c'est que le contenu de la case est un char, donc 1 octet, donc deux caractères en hexa. Mais là il m'en affiche 8 ! C'est une erreur d'affichage ou bien la valeur du tableau est bien celle affichée ?
Rémy
|
|
dimanche 7 mars 2004 à 01:57:37 |
Re : mystère hexadécimal

BruNews
|
char* key; int studentid = 9942; ... printf("key[6] = %x\n",(studentid & 255)); key[6] = (studentid & 255);
precise nous donc si *key a ete alloue, quel buffer pointe-t-il ???
ciao... BruNews, Admin CS, MVP Visual C++
|
|
dimanche 7 mars 2004 à 02:25:02 |
Re : mystère hexadécimal

remzz
|
Voici un code plus détaillé :
------------------- char key1[7]; int studentid = 9942;
void key_generator(int studentid, char* key){ key[0] = 1; ... printf("key[6] = %x\n",(studentid & 255)); key[6] = (studentid & 255); printf("key[6] = %x\n",key[6]); }
int main(int argc, char *argv[]){ ... key_generator(studentid1,key1); ... } ----------------
Le but de la fonction key_generator est de remplir key1.
J'espère que ça aide à y voir plus clair...
Rémy
|
|
dimanche 7 mars 2004 à 02:27:25 |
Re : mystère hexadécimal

remzz
|
Oups, je me suis trompé en recopiant, il faut bien lire : key_generator(studentid,key1);
Rémy
|
|
dimanche 7 mars 2004 à 23:45:10 |
Re : mystère hexadécimal

ymca2003
|
lorsque tu fait : printf("key[6] = %x\n",(studentid & 255));
studentid est un int (32 bits) signé et le résultat est un int signé (en hexa : 0xD6, en décimale : 214)
maintenant, si tu affecte ce résultat à key[6] qui un char (8 bits) signé, tout ce passe bien, key[6] contient bien 0xD6 en hexa mais comme les char sont signés, ce nombre est négatif !!! (-42)
maintenant lorsque tu l'affiche, key[6] est tout d'abord convertit en int avec extension du bit de signe, c'est pour cela que tu as des FFF au début. printf("key[6] = %x\n",key[6]);
si tu essaye avec %d au lieu de %x tu verra que le nombre est négatif.
pour éviter cela, déclare tout char comme unsigned
|
|
lundi 8 mars 2004 à 15:09:55 |
Re : mystère hexadécimal

remzz
|
En fait le type char m'est imposé. Mais j'ai trouvé une autre méthode : je force le système à n'afficher que le dernier octet :
printf("key[6] = %x\n",(key[6] & 255));
Ca a l'air de marcher. En tout cas merci pour vos réponses qui m'ont aidé à résoudre ce problème !
Rémy
|
|
Cette discussion est classée dans : printf, key, hexadécimal, mystère, studentid
Répondre à ce message
Sujets en rapport avec ce message
Petit jeu en mode texte [:D] [ par thedivxboy ]
Alors je carbure en C aujourd'hui ...Pourquoi la tête ne se déplace-t-elle pas au bon endroit ?Pourquoi dois-je mettre un getchar() à un certain endr
DestroyWindow [ par wxccxw ]
Salut, bon j'ai une boite de dialog d'un programme externe, enfaite, exactement, j'ai une dll qui s'injecte dans un progamme pas allumer et dans le P
aide pour realiser une repertoire telephonique en langage c [ par djamel000 ]
Bonjour , je souhaiterai réaliser un répertoire téléphonique à accès sécurisé(cryptage des données par mot de passe)et recherche rapide de coordonnées
printf char* [ par Flow8002 ]
Bonjour , J'ai un petit soucis je n'arrive pas a imprimer un char *. je m'explique , j'ai un char *test qui contiens deux valeurs. test[0]=9; test[
Calculatrice [ par sarazin66 ]
Voila ma calculatrice , je cherche pleins de critique pour l'améliorer =D [^^langue3] voici ma source: [code=cpp][/code]#include #include #include
Appel d'un fichier d'entete [ par batoule80 ]
Bonjour, je programme en c sous linux , il s'agit de résoudre une équation du second degrés. en premier lieu on insite l'utilisateur à saisir les coé
WSAAsyncselect pour client TCP [ par daviid00 ]
Bonjour, Je suis entrain de développer un client TCP qui se connecte de manière asynchrone à un serveur. Pour ce faire j'utilise la fonction WSAAsync
Gestion dynamique de la mémoire [ par totolfpn ]
Bonjour, j'apprends le C en autodidacte et je bloque sur strcmp et les pointeurs. Mon code marche bien sans pointeur, mais il y a un truc qui m'échapp
liste de liste chainée [ par help26 ]
je veux créer une liste (verticale) des noms et prenoms et villes et meme ces 3 elements representent un liste donc c'est une liste (horizontale) de l
condition type char [ par Adict ]
Bonjour voila j'ai un problème :p j'aime faire de petit programme pour m'entrainer et faire des challenges mais la je bloque [^^mad5] en gros j'aime
Livres en rapport
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|