OVH Cloud OVH Cloud

Division de nombre entiers signés par non signés

65 réponses
Avatar
Yann Renard
Bonjour à tous,

avec le code suivant, je m'attends à obtenir "-1" comme résultat.

#include <stdio.h>

int main(int argc, char** argv)
{
unsigned long long b = 5;
signed long long a = -5;
signed long long c = a / b;
printf("%lli\n", c);
return 0;
}

Or j'obtiens 3689348814741910322. La plateforme que j'utilise pour faire
ce test est Ubuntu Linux Lucid Lynx sur architecture x86_64.

# uname -a
Linux cervelet 2.6.32-25-generic #44-Ubuntu SMP Fri Sep 17 20:05:27 UTC
2010 x86_64 GNU/Linux

# gcc --version
gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3

Compilé sans optimisation. Est ce que je me trompe ? Ou est ce GCC qui
fait des bétises ?

Merci d'avance,
Yann

5 réponses

3 4 5 6 7
Avatar
Gabriel Dos Reis
Marc Boyer writes:

| Le 11-11-2010, Gabriel Dos Reis a écrit :
| > Marc Boyer writes:
| >| Le 09-11-2010, Gabriel Dos Reis a écrit :
| >| > Marc Boyer writes:
| >| >
| >| >| >| Tu m'avais alléché avec deux phrases
| >| >| >| "voir les écris de BS à ce sujet." ("ce" se rapportant à l'usage de non
| >| >| >| signés dans les tailles de conteneur) et "je choix des unsi gned dans la
| >| >| >| STL est beaucoup plus compliqué que le simple constat le su ggèrerait".
| >| >| >|
| >| >| >| Au final, tu m'a montrés deux passages du TC++PL d'oà ¹ il ressort que BS
| >| >| >| juge qu'en général, il ne faut pas utiliser les non si gnés pour autre
| >| >| >| chose que des champs de bit, et une autre où il signale les dangers
| >| >| >| liés au choix de non signés pour vector::size_t, qu'on pourrait lire en
| >| >| >| creux comme une critique de ce choix.
| >| >| >
| >| >| > Ceux qui connaisent les écrits de BS et la façon dont i l s'exprime
| >| >| > ne liront pas en creux.
| >| >|
| >| >| D'ailleurs, en général, je viens sur fclc et fclc++ po ur apprendre.
| >| >|
| >| >| Donc, maintenant que tu as suggéré que BS n'appré ciait pas
| >| >
| >| > Ce n'est pas just de la suggestion.
| >|
| >| Question d'interprétation de langue naturelle.
| >
| > Il est danois, mais s'exprime très bien en Anglais, très poli ment (donc
| > parfois indirectement sur ses opinions fermes.)
|
| Je prends note.
|
| >| Comme je ne connais pas bien les écrits de BS, et la façon d ont il
| >| s'exprime, je ne pouvais pas conclure.
| >
| > Bien sûr.
| >
| > Cette position a l'avantage de permettre de mettre en doute toute
| > information qu'on n'a pas vérifiée soit même (et qu'on n e pourra pas de
| > toute façon, vu l'axiome de départ) et en même temps de faire
| > sembler d'être ouvert à de l'information extérieure.
|
| Peut-être. Cette position était surtout la négation de tes propres
| premisses "Ceux qui connaisent les écrits de BS et la façon don t il
| s'exprime".

negation ? Dans quelle logique ?

| Si tu avais simplement dit une chose comme "Cela signifie
| qu'il considère cela comme une erreur", ou "moi qui le côtoie, je pense
| que...", je me serais moins méfié.
|
| >| Je sais juste que BS trouve que ce fut une erreur.
| >
| > et qu'il a perdu cette bataille.
|
| Ce qui signifie que, dès la proposition, il était contre ?
| Ce n'est pas quelque chose qu'il a découvert "à l'usage" ?

L'usage de la STL ou l'usage des « unsigned » ?
Avatar
Marc Boyer
Le 21-11-2010, Gabriel Dos Reis a écrit :
Marc Boyer writes:
| >| Je sais juste que BS trouve que ce fut une erreur.
| >
| > et qu'il a perdu cette bataille.
|
| Ce qui signifie que, dès la proposition, il était contre ?
| Ce n'est pas quelque chose qu'il a découvert "à l'usage" ?

L'usage de la STL ou l'usage des « unsigned » ?



Est-ce que dès la présentation de la STL au commité,
il a jugé que c'était une mauvaise idée d'utiliser
un non signé pour représenter/accèder à la taille des
conteneurs ?

Car je n'avais pas l'impression qu'il soit contre
l'usage de la STL, ni contre l'usage des unsigned
de façon absolue.

Marc Boyer
--
En prenant aux 10% des francais les plus riches 12% de leurs revenus,
on pourrait doubler les revenus des 10% les plus pauvres.
http://www.inegalites.fr/spip.php?article1&id_mot0
Avatar
Gabriel Dos Reis
Marc Boyer writes:

| Le 21-11-2010, Gabriel Dos Reis a écrit :
| > Marc Boyer writes:
| >| >| Je sais juste que BS trouve que ce fut une erreur.
| >| >
| >| > et qu'il a perdu cette bataille.
| >|
| >| Ce qui signifie que, dès la proposition, il était contre ?
| >| Ce n'est pas quelque chose qu'il a découvert "à l'usage" ?
| >
| > L'usage de la STL ou l'usage des « unsigned » ?
|
| Est-ce que dès la présentation de la STL au commité,
| il a jugé que c'était une mauvaise idée d'utiliser
| un non signé pour représenter/accèder à la taille des
| conteneurs ?

Les problèmes avec les « unsigned » étaient bien connus bien avant
l'introduction de la STL.

| Car je n'avais pas l'impression qu'il soit contre
| l'usage de la STL, ni contre l'usage des unsigned
| de façon absolue.

Exact. Je ne vois toujours pas où tu veux en venir avec cette observat ion.
Avatar
Marc Boyer
Le 23-11-2010, Gabriel Dos Reis a écrit :
Marc Boyer writes:

| Le 21-11-2010, Gabriel Dos Reis a écrit :
| > Marc Boyer writes:
| >| >| Je sais juste que BS trouve que ce fut une erreur.
| >| >
| >| > et qu'il a perdu cette bataille.
| >|
| >| Ce qui signifie que, dès la proposition, il était contre ?
| >| Ce n'est pas quelque chose qu'il a découvert "à l'usage" ?
| >
| > L'usage de la STL ou l'usage des « unsigned » ?
|
| Est-ce que dès la présentation de la STL au commité,
| il a jugé que c'était une mauvaise idée d'utiliser
| un non signé pour représenter/accèder à la taille des
| conteneurs ?

Les problèmes avec les « unsigned » étaient bien connus bien avant
l'introduction de la STL.



Néanmoins, ils furent proposés pour représenté la taille
des conteneurs de la STL. D'où ma question: BS était-il
contre ce choix dès la proposition ou non ?

| Car je n'avais pas l'impression qu'il soit contre
| l'usage de la STL, ni contre l'usage des unsigned
| de façon absolue.

Exact. Je ne vois toujours pas où tu veux en venir avec cette observation.



A ma question double question "dès la proposition, [BS] était contre ?",
tu as demandé une précision "L'usage de la STL ou l'usage des « unsigned » ?",
et cette observation se voulait une précision.

Marc
--
En prenant aux 10% des francais les plus riches 12% de leurs revenus,
on pourrait doubler les revenus des 10% les plus pauvres.
http://www.inegalites.fr/spip.php?article1&id_mot0
Avatar
Gabriel Dos Reis
Marc Boyer writes:

| Le 23-11-2010, Gabriel Dos Reis a écrit :
| > Marc Boyer writes:
| >
| >| Le 21-11-2010, Gabriel Dos Reis a écrit :
| >| > Marc Boyer writes:
| >| >| >| Je sais juste que BS trouve que ce fut une erreur.
| >| >| >
| >| >| > et qu'il a perdu cette bataille.
| >| >|
| >| >| Ce qui signifie que, dès la proposition, il était cont re ?
| >| >| Ce n'est pas quelque chose qu'il a découvert "à l'usage" ?
| >| >
| >| > L'usage de la STL ou l'usage des « unsigned » ?
| >|
| >| Est-ce que dès la présentation de la STL au commité,
| >| il a jugé que c'était une mauvaise idée d'utiliser
| >| un non signé pour représenter/accèder à la taille des
| >| conteneurs ?
| >
| > Les problèmes avec les « unsigned » étaient bien co nnus bien avant
| > l'introduction de la STL.
|
| Néanmoins, ils furent proposés pour représenté la t aille
| des conteneurs de la STL. D'où ma question: BS était-il
| contre ce choix dès la proposition ou non ?

L'opinion de BS en ce qui concerne les entiers non-signés était
connue bien avant l'invention de la STL et il ne semble exister rien
dans la STL pour changer ses avis. Le lecteur attentif aura
remaqué qu'il illustre d'ailleurs nombre des problèmes avec des
composants de la STL.

| >| Car je n'avais pas l'impression qu'il soit contre
| >| l'usage de la STL, ni contre l'usage des unsigned
| >| de façon absolue.
| >
| > Exact. Je ne vois toujours pas où tu veux en venir avec cette obse rvation.
|
| A ma question double question "dès la proposition, [BS] était contre ?",
| tu as demandé une précision "L'usage de la STL ou l'usage des « unsigned » ?",
| et cette observation se voulait une précision.

-- Gaby
3 4 5 6 7