-
CréateurSujet
-
octobre 23, 2024 à 5:09 pm #42950BotParticipant
Hello 👋 Cette fois, c’est toujours de la compréhenion, voici mon code :
Le suffixe U est censé préciser que la constante (5 dans ce cas) est `unsigned`, mais alors pourquoi il accepte la valeur -5 ? Je précise que la sortie est totalment normale.#inlude int main(void) { printf("-5 + -5 = %dn", -5U + -5U); return 0; }
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
CréateurSujet
-
AuteurRéponses
-
-
octobre 23, 2024 à 5:55 pm #42954
en sortie t’as -10 ?
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 5:59 pm #42955
en fait
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 6:00 pm #42956
faudrait faire
pour que tu comprennes réellement ce qui se passe en mémoireprintf("-5 + -5 = %un", -5U + -5U);
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 6:03 pm #42957
en utilisant le formatage en `%d` tu indiques que le type attendu de ton nombre sera un entier, ce qui est contradictoire avec ta somme d’entiers non signés
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 6:14 pm #42958
dans tous les cas, ton nombre `-5` est d’abord interprété comme un entier signé, classique stocké en complément à 2 dans ta mémoire, ensuite implicitement converti en U
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 7:00 pm #42959
d’accord, merci, et d’où vient la sortie cette fois ? `-5 + -5 = 4294967286`
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 7:02 pm #42960
En fait je crois que j’ai pas très bien compris 😅
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 7:03 pm #42961
vous avez vu le codage des nombres entier en mémoire ?
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 7:03 pm #42962
Non, pas vraiment
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 7:04 pm #42963
du coup c’est quoi la question
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 7:04 pm #42964
Je comprends pas très bien ce qu’il se passe en mémoire, pour quoi quan je convertis -5 en entier, il garde toujours -5
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 7:06 pm #42965
> Comment peut-on convertir une constante de type char en entier ?
pour ça tu peux utiliser `(int)var`
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 7:06 pm #42966
simple
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 7:09 pm #42967
Merci pour ça, mais comment c’est possible pour le problème 1 ? Je suis désolé je comprends pas grand chose ici pour la question 1, je comprends pas très bien ce qu’il se passe en mémoire, pourquoi quand je convertis -5 en entier, il garde toujours -5.
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 7:09 pm #42968
Mais merci pour le 2.
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 7:11 pm #42969
parce que tu peux pas encoder des nombres entier non signés négatifs
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 7:12 pm #42970
du coup tu prends ton entier -5 que tu convertis en binaire (complément à 2)
mais comme t’as rajouté `U` en fait cpp va considérer ton nombre (en bit) comme un entier non signé
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 7:13 pm #42971
donc au lieu d’avoir un nombre négatif, t’aura un grand entier positif non signé
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 7:13 pm #42972
tu fais la somme des deux t’as un dépassement de mémoire etc
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 7:14 pm #42973
c’est pas compliqué mais faut juste savoir comment fonctionne l’encodage de nombre en mémoire
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 7:14 pm #42974
c’est vraiment la base
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 7:27 pm #42975
d’accord, tu as un cours, ou un tutoriel dessus ? pour que je comprenne plus profondément ?
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code
-
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.
Sujets récents
-
Problème sur python
par Bot
il y a 2 heures et 7 minutes
-
Préciser le type d’un chiffre en C
par Bot
il y a 8 secondes
-
Creation d’un jeux video en 2d isometrique
par Bot
il y a 8 heures et 49 minutes
-
Explication de la sortie d’un programme C ?
par Bot
il y a 5 heures et 11 minutes
-
Bonjour je suis nouveau et je souhaite apprendre la cybersecuriter
par Bot
il y a 1 jour et 1 heure
Réponses récentes
Statistiques des Forums
- Comptes enregistrés
- 2 575
- Forums
- 51
- Sujets
- 891
- Réponses
- 16 451
- Mot-clés du sujet
- 0