CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[NOOB] que représente ce #define (libpcap)

Cochon-virtuel
Cochon-virtuel
Niveau 7
22 novembre 2020 à 10:29:30

Bonjour !

J'aimerais savoir ce que fait le #define entouré sur l'image. J'ai du mal à comprendre la partie "&0x0f" de la première ligne ainsi que la partie ">>4" sur la deuxième ligne. Je sais que le but du IP_HL est de trouver la taille du header. On fait une multiplication par 4 car le HL contient la valeur/4 donc jusqu'à là c'est logique mais à quoi sert le &0x0f ?
Merci !

https://image.noelshack.com/fichiers/2020/47/7/1606037154-2020-11-22-10-25-23-window.png

Merci è

Pseudo supprimé
Pseudo supprimé 22 novembre 2020 à 10:56:29

https://en.wikipedia.org/g/wiki/Bitwise_operations_in_C

Le nom du define est très explicite. Tu as une variable vhl (qui doit représenter des registres vu le nom). À priori c'est un octet donc vhl & 0x0F te donne les 4 derniers bits du ton octet vhl (donc la valeur de hl) et vhl >> 4 décale de 4 bits vers la droite et te donne la valeur de 4 premiers bits du l'octet (donc la valeur de v).

Apprends à utiliser et à lire les opérateurs bits à bits, c'est super important si tu fais du développement bas niveau ou réseau, mais pas que.

Cochon-virtuel
Cochon-virtuel
Niveau 7
22 novembre 2020 à 11:16:23

Merci pour la réponse

infireman
infireman
Niveau 9
22 novembre 2020 à 13:07:59

0x0f c’est juste une manière pompeuse d’écrire 15

Pseudo supprimé
Pseudo supprimé 22 novembre 2020 à 15:37:47

Le 22 novembre 2020 à 13:07:59 infireman a écrit :
0x0f c’est juste une manière pompeuse d’écrire 15

Bah non, ici ça rend la lecture plus claire.
Si je dis & 0x000FFFFF ce que je fais est plus clair pour tout le monde que si je disais "& 1048575"

Pseudo supprimé
Pseudo supprimé 22 novembre 2020 à 15:48:58

Le 22 novembre 2020 à 13:07:59 infireman a écrit :
0x0f c’est juste une manière pompeuse d’écrire 15

Pompeuse ? C'est une manière compacte et bien plus visuelle (par rapport à 15) de représenter 0000 1111. L'hexadécimal, quand tu traite avec des octets et des bits, c'est bien plus intuitif que le décimal.

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment