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

à quoi sert l'unsigned ?

bcarrEMoins4ac
bcarrEMoins4ac
Niveau 7
27 août 2014 à 00:11:00

sachant qu'on peut très bien déclarer des int nuls ? :(

Pseudo supprimé
Pseudo supprimé 27 août 2014 à 00:38:55

T'es pas très précis là mais généralement, en C/C++ un unsigned int est plus léger dans la mémoire qu'un int car il est codé sur moins d'octets.

Dark_Chouhartem
Dark_Chouhartem
Niveau 11
27 août 2014 à 01:09:39

| BonbonMagique  -  aujourd’hui à 00:38
| https://www.jeuxvideo.com/forums/1-47-106697-1-0-1-0-a-quoi-sert-l-unsigned.htm#message_106698
| T'es pas très précis là mais généralement, en C/C++ un unsigned int est plus léger dans la mémoire qu'un int car il est codé sur moins d'octets.

C’est l’heure du b-b-b-b-bullshit :noel:

Non, un int et un unsigned int sont codé sur le même nombres de bits (un mot machine en général, mais on peut tweaker ça quand on est un porc très bas niveau).

Après en C++ par exemple le résultat de la méthode size sur pas mal de conteneurs standards sont donnés par des unsigned int parce que demander un nombre d’élément c’est forcément ≥ 0 ou alors il y a un problème …

Après les uint quand tu fais des opérations bit à bit ça peut être pratique aussi parce que le carry n’est pas conservé quand tu fais un shift:

Genre 1000… << 1 = 1000… est un bug assez courant parce que le comportement n’est pas spécifié et qu’il peut être désirable de conserver l’information de signe en arithmétique signée :(

godrik
godrik
Niveau 30
27 août 2014 à 03:14:15

En effet il y a des histoire d'arithmetique en base 2 qui marche differement en signed et unsigned
en unsigned x/2 == x<<1.
mais en signed ce n'est pas vrai.

Et principalement unsigned sert quand tu ne veux vraiment pas stocker de nombre negatif, mais tu veux stocker des nombres plus grand que 2^31 mais plus petit que 2^32. Par exemple, ca m'arrive assez souvent dans mes problemes d'implementation d'algo de graphes.

[denshaotoko]
[denshaotoko]
Niveau 25
27 août 2014 à 07:02:33

" Non, un int et un unsigned int sont codé sur le même nombres de bits (un mot machine en général, mais on peut tweaker ça quand on est un porc très bas niveau). "
:d) je crois que c'est sur 4 mots machine en général (sur x86, puis bah 8 mots machine sur x86_64), un int sur un mot machine c'est possible sur quelle architecture?

godrik Voir le profil de godrik
Posté le 27 août 2014 à 03:14:15 Avertir un administrateur
En effet il y a des histoire d'arithmetique en base 2 qui marche differement en signed et unsigned
en unsigned x/2 == x<<1.
mais en signed ce n'est pas vrai.

:d) je crois que c'est x/2 == x>>1 que tu voulais dire

godrik
godrik
Niveau 30
27 août 2014 à 07:15:35

en effet, je voulais dire >>

la definition de int depend completement du compilateur. Souvent les compilateurs choisissent la taille qui va bien pour qu'il n'ait pas a faire des acrobaties pour que ca marche bien. Donc de nos jours, en moyenne, int c'est 4 bytes. mais les garanties sont tres faible dans la norme je pense.

D'apres wikipedia, int c'est plus de 16-bit. et au moins aussi gros que short. long c'est au moins 32-bit et au moins aussi gros que int. et long long c'est au moins 64-bit et c'est au moins aussi gros que long.

Donc si ca plait au mec qui ecrit le compilateur, tu peux avoir tous ces types la qui font 1024-bit et toujours etre C standard.

[1] http://en.wikipedia.org/wiki/C_data_types

Pseudo supprimé
Pseudo supprimé 27 août 2014 à 10:59:29

Ok, j'aurais essayé. :-(

D'ailleurs tant qu'on y est, la taille des types en mémoire ne dépend que du compilateur ?

Dark_Chouhartem
Dark_Chouhartem
Niveau 11
27 août 2014 à 13:03:58

DenshaOtoko :d) Tu dois confondre : http://en.wikipedia.org/wiki/Word_(computer_architecture)

Un mot machine c’est la taille d’une donnée « naturelle » pour un processeur, donc 32 ou 64 bits ( = 4 ou 8 octets). C’est généralement utilisé pour indiquer la taille des registres, mais pas forcément …
Toi tu parles d’octet comme a indiqué godrik :ok:

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