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

[C] Décalage de bit

Ksqcx
Ksqcx
Niveau 1
04 avril 2016 à 13:18:17

Slt,

je suis bloqué sur un de mes programmes actuellement, quand je veux faire un décalage à droite j'ai un problème.

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int variable;

    variable = 0xF0000000;
    printf("[var] %p\n",variable);

    variable >>= 1;
    printf("[var] %p\n",variable);
}

Regarder cet exemple tout con il me ressort ça :

[var] F0000000
[var] F8000000

alors qu'il devrait normalement me dire [var] 78000000
Dès que je veux faire un décalage avec le bit du poids forts sa bug comme si il avait une réserve de 1 après le 32ème bit

Voilà je voulais savoir si c'est un bug de mon pc ou si c'est normal ????? Bref help me plz

Pseudo supprimé
Pseudo supprimé 04 avril 2016 à 13:25:08
>>=

ça correspond à quoi le = ?

Message édité le 04 avril 2016 à 13:25:27 par Pseudo supprimé
Pseudo supprimé
Pseudo supprimé 04 avril 2016 à 13:25:11

C'est doit être à cause du bit de signe qui indique si c'est une valeur inférieur à zéro. Si je ne m'abuse pas, Il suffit de faire un and 0xE avant le décalage par exemple : variable & 0x0E FF FF FF >>= 1;

Pseudo supprimé
Pseudo supprimé 04 avril 2016 à 13:27:23

Le 04 avril 2016 à 13:25:08 Avrazu a écrit :
>>=

ça correspond à quoi le = ?

C'est un raccourçi pour éviter de dire variable = variable >> 1. On peut dire variable >>= 1 à la place

Ksqcx
Ksqcx
Niveau 1
04 avril 2016 à 13:28:07

Très bonne remarque je venais justement pour vous faire par de mon "erreur" il suffisait simplement de dire que la variable int n'est pas signé Merci quand même ! :-)

Mais je vais quand même tester ta solution mounax ;)

Pseudo supprimé
Pseudo supprimé 04 avril 2016 à 13:28:44

Le 04 avril 2016 à 13:27:23 mounax a écrit :

Le 04 avril 2016 à 13:25:08 Avrazu a écrit :
>>=

ça correspond à quoi le = ?

C'est un raccourçi pour éviter de dire variable = variable >> 1. On peut dire variable >>= 1 à la place

Ah oui je suis con XD

Pseudo supprimé
Pseudo supprimé 04 avril 2016 à 13:36:10

De rien. :) Je suis pas certain, ça fait un bail que j'en ai pas fait et quartets inversés sous intel... Ca pourrait tout aussi bien être 0xEF FF FF FF... Enfin tu verras, l'important c'est que tu saches d'ou vient le problème et comment l'aborder.

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