https://www.jeuxvideo.com/forums/1-12598-156-200000000000-0-1-0-0.htm
En tapant un numéro de page ahurissant, on tombe sur ces pages. En regardant le titre (ou en cliquant sur "Répondre"), on constate qu´on est sur la page numéro 2147483647. C´est donc la valeur maximale que peut prendre le champ "numéro de page" dans la BDD de JVC.
La page négative minimale est la page numéro -2147483648. C´est donc la valeur minimale que peut prendre le champ dont je parle ci-dessus.
En faisant |-2147483648| + 2147483647 + 1 (la page 0 compte aussi), on obtient donc 4294967296, ou 2^32.
En fait, en programmation, toute variable est "typée". Je ne parlerai pas des types "complexes" comme les ressources et compagnie, je vais juste parler des nombres : il y a plusieurs types simples de variables pour stocker des nombres. Pourquoi ? Ah, je n´ai pas envie de me faire bannir pour flood
Consultez le cours C/C++ du Site du Zéro si vous êtes curieux(se) ^^
Chacun de ces types permet de stocker jusqu´à 2^n valeurs différentes. En fait, le "2" a un rapport avec la base binaire (0 ou 1) qu´utilisent les ordinateurs : les variables sont stockées sur des plages plus ou moins grandes de "bits". Par exemple, pour "char" (enfin, c´est plus utilisé pour les caractères que pour les nombres ^^), on utilise 8 bits, ce qui fait 2^8 = 256 possibilités différentes.
Après, la variable est dite "signée" si elle peut prendre des valeurs négatives. Si elle ne démarre qu´à partir de zéro, elle est "non signée" : pas de nombres négatifs, mais plus de possibilités positives ^^
Il se trouve que la variable utilisée dans la BDD de JVC pour le nombre de pages est un int signé. Autrement dit, pour chaque topic, 32 bits sont alloués pour son nombre de pages. Après, pourquoi avoir choisi une variable signée alors qu´un topic aura toujours un nombre de pages positif : je n´en sais rien ^^ Mais de toute façon, ça sera difficilement atteint, même avec un boost ultra-intensif : un int permet d´avoir 2^32 = 4294967296 possibilités, dont 2147483648 possibilités positives ou nulles ^^
Ca, c´est pour le nombre de pages. Après, pour le nombre de messages, c´est plus simple : tu multiplies le nombre de pages par 20 ^^
Du coup, mon calcul d´avant était faux, vu que l´int est signé : en fait, il ne peut y avoir "que" ((2^32)/2)*20 = 42949672960 messages dans un topic.
Au delà, un bug se produira ^^
________________________________
Anonymous59, tyran à temps partiel 