-
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 -
octobre 23, 2024 à 7:54 pm #42976
pour t’expliquer vite fait:
1) En programmation, tu **peux pas** avoir de nombres négatifs non signés
Donc pour stocker un nombre négatif, tu admets qu’il est signé par défaut…On imagine que tu taffes sous 6 bits (pour simplifier)
Donc ton `-5`utilise le complément à 2 pour être stocké, pour ça:#1 tu prends la valeur absolue de ton nombre que tu convertis en binaire. Dans ton cas
|-5| = 5 = `00101`#2 tu permutes chaque bit de ton nombre (0 1)
donc `00101` -> `11010`#3 tu effectues `+1` à ton nombre
`-5` = `11011`Donc sur une machine 6 bits ton `-5` est stocké sous la forme `11011`
Sauf que toi tu veux, `-5U`
donc ton programme va stocker ton nombre comme expliquer plus haut, mais au moment d’effectuer le calcul il va lire `11011` comme un nombre **non signé** (d’ou le `U`)
Donc il aura plus `-5` mais `27` (ce qui à rien à voir)
Mais tu taffes pas sous 6 bit mais 32 ou 64 donc en mémoire t’aura un truc du genre
`-5` = `11111111111111111111111111111011` = `4294967291` **en non signé**Grosse aberration mathématique au passage
ensuite tu fais `-5U + -5U` = `4294967291 * 2` = `8589934582` sauf que ce nombre est trop grand pour être stocké sur 32 bits donc t’as un overflow
donc ton programme va prendre le modulo du nombre et renvoyer `4294967286` au lieu de `8589934582`
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 7:54 pm #42977
c’est un peu long mais rien de compliquer
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 7:55 pm #42978
c’est juste bizarre de s’embarquer dans de la prog (bas niveau en plus) avec si peu de connaissance
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 7:56 pm #42979
enfin prend le temps de bien lire ce que j’ai expliqué et ça devrait le faire
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 7:59 pm #42980
Merci infiniment en tout cas, mais tu me dis « C’est juste bizarre de s’embarquer dans de la programmtion bas niveau avec si peu de connaissances », mais je fais comment alors ? Pour compléter ce vide ?
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 7:59 pm #42981
Mais merci beaucoup de m’avoir expliqué.
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:00 pm #42982
c’est ton univ qui t’as demandé ça je suppose ?
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:00 pm #42983
Non pas du tout, je fais ça par plaisir.
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:00 pm #42984
ah
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:00 pm #42985
Je vais passer pour un maso 😅
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:01 pm #42986
j’ai cru que c’était un exo de coursn et qu’on t’avais envoyé au charbon sans rien
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:01 pm #42987
je comprends mieux
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:01 pm #42988
je pourrai te filer des resources dans la semaine stv
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:02 pm #42989
honnêtement c’est vraiment la base ça donc c’est des truc que j’ai appris y’a des années 😅
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:02 pm #42990
et je touche plus trop au c pour être honnête
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:02 pm #42991
je reverse plus de c que j’en code
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:02 pm #42992
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:03 pm #42993
D’accord, merci beaucoup, désolé je devrais pas te le dire mais ça m’a un peu brisé mon moral ta phrase 😂
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:03 pm #42994
Mais si tu me donne des ressources, merci
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:03 pm #42995
tkt
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:03 pm #42996
par contre c’est niveau sup genre prépa/iut
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:03 pm #42997
accessible
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:04 pm #42998
t’as quel age ?
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:04 pm #42999
L’âge minium pour utiliser Discord
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:04 pm #43000
15 ans 😅
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:04 pm #43001
ouai ok
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:04 pm #43002
c’est bien tu commences jeune
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:04 pm #43003
futur nerd
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:05 pm #43004
(enfin 14 mais je me rapproche très fort du 15)
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:05 pm #43005
ouai fait attention quand même
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:05 pm #43006
A quoi ?
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:05 pm #43007
t’es un peu jeune
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:05 pm #43008
comme ça
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:06 pm #43009
oui je sais mais j’aime ça le code donc voilà
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:07 pm #43010
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:07 pm #43011
çô vô
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:07 pm #43012
Je croyais que ça avit changé mais non
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:13 pm #43013
Mais tu penses que j’ai toujours moyen ?
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:16 pm #43014
bah oui pourquoi pas
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:16 pm #43015
faut juste pas se décourager
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:16 pm #43016
t’envisage de faire quoi au lycée/sup ?
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:17 pm #43017
si tu suis une formation scientifique tu va être confronté au minimum à la prog, fonctionnement des ordi etc..
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:20 pm #43018
C’est ce que je prévois
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:21 pm #43019
J’ai deux possiblités : Astrophysique + Informatique (je parle en avenir pro) ou développeur systèmes (OS, embarqué, etc…)
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:21 pm #43020
c’est ce que j’envisage pour le moment
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:22 pm #43021
pas mal
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:22 pm #43022
Et toi tu travailles dans quoi ?
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:22 pm #43023
Si c’est pas trop intrusif
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:23 pm #43024
poste d’ingé dans l’industrie
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:23 pm #43025
ouai rien à voir avec la prog
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:23 pm #43026
Oui effectivement
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:23 pm #43027
enfin pas trop
——————–
ranma_chu – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:23 pm #43028
Ha tu fais un peu de prog quand même ?
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:24 pm #43029
Pour l’instant je rêve de développer un jour un OS
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:24 pm #43030
Mais bon j’en suis encore loin
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code -
octobre 23, 2024 à 8:25 pm #43031
Et je rêve pas, pas le prochain Windows ou le prochain Debian
——————–
ciboulette_of_space – Envoyé depuis le Discord : Culte du code
-
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.
Sujets récents
-
Fond d’écran tools python
par Bot
il y a 1 semaine
-
Multitouch Problem
par Bot
il y a 1 semaine et 3 jours
-
Convertir un ficher .py en .exe
par Bot
il y a 1 semaine
-
Problème signal R C# RAZOR
par Bot
il y a 1 semaine et 2 jours
-
aide HTML CSS PHP BUTTON
par Bot
il y a 1 semaine et 2 jours
Réponses récentes
Statistiques des Forums
- Comptes enregistrés
- 2 588
- Forums
- 51
- Sujets
- 912
- Réponses
- 17 355
- Mot-clés du sujet
- 0