Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2238 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Entiers longs (64 bits), ça existe pas ???

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Entiers longs (64 bits), ça existe pas ???

n°402920
nero27
Posté le 21-05-2003 à 15:30:37  profilanswer
 

Voilà, j'ai besoin d'entiers longs en PHP, mais apparemment, c'est pas faisable : c'est hallucinant :eek2:
 
Voilà ce que je voudrais faire, si ça marchait :
 

Code :
  1. $insee = "1800810033032";
  2. $insee = (int)$insee;
  3. $cle = 97 - ($insee % 97);


 
Seulement, $insee est trop long pour que ça fonctionne :/


Message édité par nero27 le 22-05-2003 à 11:05:37
mood
Publicité
Posté le 21-05-2003 à 15:30:37  profilanswer
 

n°402936
kadreg
profil: Utilisateur
Posté le 21-05-2003 à 15:32:50  profilanswer
 


Il y a le bazooka :
 
http://www.php.net/manual/en/ref.gmp.php


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°402951
nero27
Posté le 21-05-2003 à 15:36:24  profilanswer
 


pas sous windows :/

n°402953
Tetragramm​aton IHVH
dieu unique => pensée unique
Posté le 21-05-2003 à 15:36:45  profilanswer
 

nero27 a écrit :

Voilà, j'ai besoin d'entiers longs en PHP, mais apparemment, c'est pas faisable : c'est hallucinant :eek2:


 
Qu'appelles-tu "entier long" ? Codé sur 32 bits ?


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
n°402987
backdafuck​up
Back to da old skool
Posté le 21-05-2003 à 15:43:29  profilanswer
 

Tetragrammaton IHVH a écrit :


 
Qu'appelles-tu "entier long" ? Codé sur 32 bits ?  


je crois qu'il veut carrément du 64....
 
edit: cf discussion sur blabla@prog


Message édité par backdafuckup le 21-05-2003 à 15:43:50
n°402991
nero27
Posté le 21-05-2003 à 15:44:06  profilanswer
 

backdafuckup a écrit :


je crois qu'il veut carrément du 64....
 
edit: cf discussion sur blabla@prog


exactement :/

n°403153
nero27
Posté le 21-05-2003 à 16:26:38  profilanswer
 

[:denetrob]

n°403154
lorill
Posté le 21-05-2003 à 16:26:54  profilanswer
 

tu devrais marquer exactement le calcul que tu veux faire ici, parce que ca doit etre faisable en plusieurs etapes, sans entier long (mais perso j'y connais rien en maths, j'ai oublié :/)

n°403158
nero27
Posté le 21-05-2003 à 16:28:03  profilanswer
 

lorill a écrit :

tu devrais marquer exactement le calcul que tu veux faire ici, parce que ca doit etre faisable en plusieurs etapes, sans entier long (mais perso j'y connais rien en maths, j'ai oublié :/)


c'est vrai !
 
Je vais éditer le premier post ;)

n°403171
nero27
Posté le 21-05-2003 à 16:35:39  profilanswer
 

Tetragrammaton IHVH m'a proposé de scindé l'entier en deux : est-ce que qq1 peut m'expliquer comment mettre ça en oeuvre, et surtout comment adapter ça à mon calcul ?

mood
Publicité
Posté le 21-05-2003 à 16:35:39  profilanswer
 

n°403210
anapajari
s/travail/glanding on hfr/gs;
Posté le 21-05-2003 à 16:54:12  profilanswer
 

euh alors j'ai essayé ton code il marche très bien j'obtiens 32 pour $clé ...
 
tiens pour les infos du serveur sur lequel j'ai testé:
Apache-AdvancedExtranetServer/1.3.26 (Mandrake Linux/6mdk)  
PHP/4.2.3

n°403217
nero27
Posté le 21-05-2003 à 16:56:54  profilanswer
 

Anapajari a écrit :

euh alors j'ai essayé ton code il marche très bien j'obtiens 32 pour $clé ...
 
tiens pour les infos du serveur sur lequel j'ai testé:
Apache-AdvancedExtranetServer/1.3.26 (Mandrake Linux/6mdk)  
PHP/4.2.3


Si tu prends ta calculette, tu verras que 97 - (1800810033032 % 97) est égal à 7 :/

n°403259
nero27
Posté le 21-05-2003 à 17:14:31  profilanswer
 

up :cry:

n°403261
anapajari
s/travail/glanding on hfr/gs;
Posté le 21-05-2003 à 17:15:57  profilanswer
 

ouais bon alors j'ai réfléchi c'est normal que ça marche pas ton truc parce quoi qu'il arrive $insee tu le castes en int donc il te le transforme...
Faudrait mieux le caster en float comme c'est expliquer la:
http://www.php.net/manual/fr/langu [...] nteger.php
 
Mais d'un autre coté j'ai essayé ça marche toujours pas  :lol:

n°403264
nero27
Posté le 21-05-2003 à 17:19:01  profilanswer
 

Anapajari a écrit :

ouais bon alors j'ai réfléchi c'est normal que ça marche pas ton truc parce quoi qu'il arrive $insee tu le castes en int donc il te le transforme...
Faudrait mieux le caster en float comme c'est expliquer la:
http://www.php.net/manual/fr/langu [...] nteger.php
 
Mais d'un autre coté j'ai essayé ça marche toujours pas  :lol:  


Ben ouais, il me mets le nombre comme ceci : 1.80081003303E+012 :/

n°403286
anapajari
s/travail/glanding on hfr/gs;
Posté le 21-05-2003 à 17:30:54  profilanswer
 

bon je t'ai trouvé une solution ... c'est dégueu mais c'est déjà mieux que rien, tu fais ton calcul sous mysql
select 97 - MOD(1800810033032,97);
 
normalement ça doit marcher ... mais c'est dégueu :)

n°403289
nero27
Posté le 21-05-2003 à 17:33:55  profilanswer
 

Anapajari a écrit :

bon je t'ai trouvé une solution ... c'est dégueu mais c'est déjà mieux que rien, tu fais ton calcul sous mysql
select 97 - MOD(1800810033032,97);
 
normalement ça doit marcher ... mais c'est dégueu :)


Ca me plait bien, si je comprends bien, je fais :

Code :
  1. insert into table (cle) values (select 97 - MOD(1800810033032,97));


 
C'est ça :??:

n°403809
anapajari
s/travail/glanding on hfr/gs;
Posté le 22-05-2003 à 09:55:23  profilanswer
 

presque sauf que la syntaxe pour mysql c'est:

Code :
  1. insert into table select 97 - MOD(1800810033032,97) from uneAutreTable;

 
Alors je sens poindre la question "ouuiii mais si j'ai d'autres champs dans mon insert", bin à ce moment la tu fais un truc comme ça:

Code :
  1. insert into table select 97 - MOD(1800810033032,97), 'champs2', 'champs3', .... from uneAutreTable;


 
 

n°403817
nero27
Posté le 22-05-2003 à 10:00:32  profilanswer
 

Anapajari a écrit :

presque sauf que la syntaxe pour mysql c'est:

Code :
  1. insert into table select 97 - MOD(1800810033032,97) from uneAutreTable;

 
Alors je sens poindre la question "ouuiii mais si j'ai d'autres champs dans mon insert", bin à ce moment la tu fais un truc comme ça:

Code :
  1. insert into table select 97 - MOD(1800810033032,97), 'champs2', 'champs3', .... from uneAutreTable;


 
 
 


Si je comprends bien, tes lignes de code servent à importer les champs de uneAutreTable vers table, non ?

n°403838
anapajari
s/travail/glanding on hfr/gs;
Posté le 22-05-2003 à 10:15:36  profilanswer
 

pas du tout :)
En fait mysql semble mal supporter le insert into ... select ... si tu precises pas de table pour le select ( donc si tu fais insert into table select 97 - MOD(1800810033032,97) ).
Alors l'idée c'est de préciser une autre table car si tu fais par exemple

Code :
  1. select 'a', 'b', 'c', 'd' from uneTable


ça te remontera comme résultat a , b , c , d.
 
Donc si tu as besoin d'autres champs dans ton insert il suffit de rajouter dans ton select des constantes ( et pas des noms de champs de uneAutreTable )... Fus-je plus clair?

n°403917
nero27
Posté le 22-05-2003 à 11:01:22  profilanswer
 

ok, mais c'est pas très propre tout ça :/
 
Là, je suis en train de tester la concaténation de deux entiers ;)

n°404052
zion
Plop
Posté le 22-05-2003 à 12:18:57  profilanswer
 

kadreg a écrit :


Il y a le bazooka :


 
d'habitude on propose la corde... mais bon le bazooka pourquoi pas... (blueflag déguisé)


---------------
Informaticien.be - Lancez des défis à vos amis
n°404140
nero27
Posté le 22-05-2003 à 13:20:09  profilanswer
 

zion a écrit :


 
d'habitude on propose la corde... mais bon le bazooka pourquoi pas... (blueflag déguisé)


Et bien, personnellement, je suis en train de tester la concaténation de deux entiers (après avoir préalablement scindé l'entier long en deux), mais le pb, c'est que qd le deuxième nombre commence par un ou plusieurs "0", je les perds au final :
ex :  
1874467005485 donne 1874467.005485  
et au final, ça me donne :
18744675485  
 
:/

n°404241
anapajari
s/travail/glanding on hfr/gs;
Posté le 22-05-2003 à 13:52:17  profilanswer
 

bon reprenons :)
en fait le modulo a pas l'air de marcher super sur des aussi grand float mais en le faisant à la main apparament ça marche, donc le code donne:

Code :
  1. <?php
  2.   $insee = "1800810033032";
  3.   $insee = (float)$insee;
  4.   $cle = 97 - round((($insee / 97) - floor($insee / 97 ))*97);
  5. ?>

n°404251
nero27
Posté le 22-05-2003 à 13:54:30  profilanswer
 

Anapajari a écrit :

bon reprenons :)
en fait le modulo a pas l'air de marcher super sur des aussi grand float mais en le faisant à la main apparament ça marche, donc le code donne:

Code :
  1. <?php
  2.   $insee = "1800810033032";
  3.   $insee = (float)$insee;
  4.   $cle = 97 - round((($insee / 97) - floor($insee / 97 ))*97);
  5. ?>




Je teste ça de suite ;)

n°404396
nero27
Posté le 22-05-2003 à 14:48:49  profilanswer
 

Ca marche nickel, merci http://smileyonline.free.fr/images/gif/sourire/vignette1/thumbnails/1035319756_gif.gif

n°404507
anapajari
s/travail/glanding on hfr/gs;
Posté le 22-05-2003 à 15:43:40  profilanswer
 

my pleasure...

n°404552
nero27
Posté le 22-05-2003 à 15:55:38  profilanswer
 

[:prosterne] :jap: [:prosterne2]

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Entiers longs (64 bits), ça existe pas ???

 

Sujets relatifs
algo de conversion d image 16 bits en 24 bitsverifier si un fichier existe ?
existence de ORACLE 9i 32 bits pour HP UX 11Existe-t-il une fonction équivalente au nvl de Oracle sous ACCESS?
Variable 32 bits stoquée dans 2 varialbes 16 bits ?[PHP/MYSQL]Verifier si un enregistrement existe
[Python] Comment savoir si un objet existe?Verifier si un user/db postgres existe
Editeur et Generateur de page CSS : ça existe en Open Source ?creez des contact outlook dans un dossier quand il n existe pas deja
Plus de sujets relatifs à : Entiers longs (64 bits), ça existe pas ???


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR