Accueil > Forum > > > > integer
integer
jeudi 6 mars 2008 à 23:13:36 |
integer

magicsmacks
|
Bonjour, Voilà je dois décoder un fichier comprenant une liste de coordonnées de points, puis je voudrais après l'afficher sur un graph en php. Pour l'affichage pas de pb je gère, simplement le décodage m'embète un peu. Voici l'une des lignes : æaaaa«â-ãmæ?è®è.çÓå16;å'æ~èTêïë1A;ê-ç çwè å Å É ? ¾ » § Je dois décoder cette ligne sachant qu'on me dit que ca représenterait sous la forme 32bits les valeurs 'integer' du signal. Pourriez-vous m'indiquer comment décoder ceci? Merci de votre aide MAGICSMACKS[:p]
|
|
vendredi 7 mars 2008 à 00:07:22 |
Re : integer

coucou747
|
salut tout les 4 octets, t'as une valeur, la fonction ord te donne la valeur d'un octet. apres, faut voir en fonction de l'endian, mais ca donnerait un truc genre : $s ta chaine $t=array(); $strlen=strlen($s); for ($i=0;$i<$strlen;$i+=4){ $t[]= ord($s[$i])+ord($s[$i+1]) << 8 + ord($s[$i+2]) << 16 + ord($s[$i+3]) << 24; } les 8, 16 et 24 sont peut-etre dans le mauvais ordre... /** * @author coucou747 <coucou747@hotmail.com> * @see irc://cominweb.uni-irc.net/#programmation */
|
|
vendredi 7 mars 2008 à 07:47:18 |
Re : integer

magicsmacks
|
Bonjour, merci bcp pour cette réponse
Je viens de relire la notice de ce format en fait je me suis trompé c'est du 16 bits et donc sur 2 octets, est-ce que ca marcherai quand même en adaptant ainsi : ? $t=array(); $strlen=strlen($s); for ($i=0;$i<$strlen;$i+=2){ $t[]= ord($s[$i])+ord($s[$i+1]) << 8 ; }
Je n'ai pas bien compris à quoi correspondait la dernière ligne de code? Merci de votre aide précieuse
MAGICSMACKS[:p]
|
|
vendredi 7 mars 2008 à 14:06:58 |
Re : integer

coucou747
|
ca devrait marcher. regarde les operateurs binaires, et ce que fait la fonction ord (cf php.net ) /** * @author coucou747 <coucou747@hotmail.com> * @see irc://cominweb.uni-irc.net/#programmation */
|
|
samedi 22 mars 2008 à 08:43:20 |
Re : integer

magicsmacks
|
Alors en fait ca fonctionne mais uniquement pour les nombres positifs. En fait j'avais oublié de dire que c'étaient des valeurs "signées" ce qui explique pourquoi les valeurs négatives ne sont pas correctes. Savez-vous comment faire pour avoir des valeurs signées? Merci de votre aide
MAGICSMACKS[:p]
|
|
samedi 22 mars 2008 à 11:53:33 |
Re : integer

coucou747
|
Réponse acceptée !
$nbr= ord($s[$i])+ord($s[$i+1]) << 8 ;
if ($nbr & 0x8000){
$nbr=0x010000 - $nbr;
}
$t[]=$nbr;
|
|
samedi 22 mars 2008 à 15:00:58 |
Re : integer

magicsmacks
|
Bonjour,
Merci pour cette réponse... Malheureusement tout ne fonctionne pas encore mais ca va mieux... J'ai essayé avec cette méthode, mais les valeurs n'étaient toujours pas signées, j'ai donc modifié ce dernier code par celui-ci : $nbr= ord($s[$i])+ord($s[$i+1]) << 8 ;
if ($nbr & 0x8000){ $nbr= $nbr - 0x010000; }
$t[]=$nbr; Simplement voilà, beaucoup de valeurs correspondent bien à ce que je devrais obtenir mais pas tout... Par exemple lorsque je décode cette chaine de caractère : "ÿ?" le programme me renvoit : "16383", ce qui est la valeur que j'attends donc tout va bien. Mais quand je décode : " À" il me renvoit "-16352" au lieu de "-16384" De même quand je décode : " î" il me renvoit "-4576" au lieu de "-4608" J'ai l'impression que le bug ce produit à chaque fois qu'il y a un espace à décoder et qu'il oublie de retrancher 32... Où se trouve le problème selon vous? Merci pour tout
MAGICSMACKS[:p]
|
|
samedi 22 mars 2008 à 15:35:05 |
Re : integer

magicsmacks
|
Rebonjour, J'ai donc essayé d'adapter mon code par celui-ci : for ($i=0;$i<$strlen;$i+=2){ $a = $a + 1; $nbr= ((ord($chaine[$i]))+(ord($chaine[$i+1]) << 8)) ; if ($nbr & 0x8000){ if ((ord($chaine[$i])) == '32') { $nbr= ((ord($chaine[$i+1]) << 8)) ; } $nbr= $nbr - 0x010000; } Ce qui me permettait de corriger les autres problèmes... Mais alors maintenant certaines valeurs sont toujours anormales : La chaîne suivante : " è" est décodée par "-6144" au lieu de "-6112" soit une erreur de 32 encore. Evidemment avec l'ancien code elle était décodée normallement... Je ne comprends plus rien. Merci de votre aide
MAGICSMACKS[:p]
|
|
samedi 22 mars 2008 à 15:57:16 |
Re : integer

coucou747
|
if ($nbr & 0x8000){ // si le bit de signe est a 1 alors c'est un negatif
$nbr=0x010000 - $nbr; // si c'est un negatif, alors
c'est la que je me suis plante :)
tu peux essayer :
$nbr= 0xFFFF0000 & $nbr;
ou
$nbr= - (0x010000 - $nbr);
}
a mon avis, les deux devraient fonctionner
|
|
lundi 24 mars 2008 à 12:30:13 |
Re : integer

magicsmacks
|
Merci beaucoup, Effectivement ça rejoint ce que j'avais écrit mais comme je l'avais dit il existe toujours une erreur de 32 pour certaines chaînes. En fait je pense que le php ne fait pas la différence entre un espace et l'absence de caractère. Ce qui explique que certaines chaînes commençant par " " donnent une bonne valeur alors que d'autres donnent une erreur de 32. J'ai essayé d'ouvrir le fichier en "binaire" mais ca ne change rien. Voyez-vous comment faire pour que le php fasse la différence entre ces 2 codages...? Existe-t-il un moyen d'ouvrir le fichier autrement Merci d'avance
MAGICSMACKS[:p]
|
|
Cette discussion est classée dans : integer, décoder
Répondre à ce message
Sujets en rapport avec ce message
Type Integer... Arrondi de la valeur [ par ripoux ]
Bonjour à tous,J'ai un petit problème avec des variables que je dois set au type Int !J'affiche dans mon applic web des résultats en % et en fait le p
Décoder un sha1 [ par liteulkevin ]
Bonjour, J'ai créer un script qui code des password avec un sha1. Jusque là pas de soucis. Mais comment décrypter ce code après? Merci d'avance.
ID : Float ou Integer ? [ par MadM@tt ]
Petite question à 2 balles : dans vos tables vos id ce sont des float ou des integer ? Perso j'ai mis float comme ça on peut avoir des chiffres plus g
faire une recherche dans une base donnee po voir si un film existe ou pas [ par beur81 ]
bonjour voila ,je suis entrain de faire une pgm qui gere des films mais j'aimerais faire une recherche appartir du nom pur voir si le film existe ou p
Conversion String Integer (entre autres) [ par thececilia ]
Bonjour à tous !voici mon problème : je suis en train de créer un site dans lequel les gens rentrent des matrices par le biais de "input type=text". J
Demande d'aide pour décoder un cryptage [ par hermesdesbrumes ]
Bonjour tout le monde,Je ne ferai qu'une brève apparition sur votre forum,Je vous pries de bien vouloir m'excuser pour mon culot mais j'ai besoin de v
preg_match [ par protozorus ]
bonjour a tous, je cree une base de donnee en php et je souhaiterai verifier la presence a chacune des lignes saisies de certains elements.ex:create
petites questions sur les bitwise [ par jdaviaud ]
je souhaite réutiliser une classe utilisant les bitwises pour gérer des droits d'accès utilisateurs, cette classe fonctionnait bien avec mon ancien se
coder/décoder du json [ par sagat06 ]
Bonjour à tous,j'ai récemment installé en local php 5.2.6 dans le but d'avoir nativement json_decode et encode();Jusqu'alors je codais des objet json
Livres en rapport
|
Derniers Blogs
[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril CERTIFICATIONS BETA .NET 4CERTIFICATIONS BETA .NET 4 par KooKiz
Les inscriptions pour les certifications beta .NET 4 ont commencé. L'inscription est offerte pour les examens suivants : - 71-511, TS: Windows Applications Development with Microsoft .NET Framework 4 - 71-515, TS: Web Applications Development with...
Cliquez pour lire la suite de l'article par KooKiz [MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2[MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2 par redo
J'imagine que la plupart d'entre vous connaissent bien et utilisent le service de traduction de Google, mais connaissez-vous celui de Microsoft . Microsoft Translator ? Effectivement, Microsoft nous annoncé le lancement version 2 de la Technologie Preview...
Cliquez pour lire la suite de l'article par redo LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010!LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010! par MPOWARE
Toutes les vidéos de ce lancement sont en ligne!
Partie I - Intro
http://www.youtube.com/watch?v=LkQzTQ8T6CA
Partie II - Démo 1
http://www.youtube.com/watch?v=drAhYQ7lqvo
Partie III - Démo 2
http://www.youtube.com/watch?v=c8KM_1Gqybc...
Cliquez pour lire la suite de l'article par MPOWARE
Forum
RE : GOOGLEMAPRE : GOOGLEMAP par GREGGRAPH
Cliquez pour lire la suite par GREGGRAPH RE : PHP ALGORE : PHP ALGO par Arto_8000
Cliquez pour lire la suite par Arto_8000
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|