J'aimerais mettre l'opérateur ternaire sous une forme "normale", mais je ne vois pas comment :
res = (sr?(1<<31):0) | er | (((unsigned int)mr&0x7FFF)<<8);
j'ai réussi à faire :
res = (sr?(1<<31):0);
res=res|er;
res=res|(((unsigned long int)mr&0x7FFFF)<<8);
Autre question, je dois avoir une mantisse en unsigned long int
Je la récupère correctement, mais j'obtiens des résultats incorrects, voila mon code :
void separeFloat (float x, char *sig, char *exp, unsigned long int *mant);
float fadd(float a, float b) {
char signe1, signe2, signeRes;
unsigned long int mantisse1, mantisse2, mantisseRes;
unsigned long int buf;
char exposant1, exposant2, exposantRes;
unsigned int res;
separeFloat(a, &signe1, &exposant1, &mantisse1);
separeFloat(b, &signe2, &exposant2, &mantisse2);
//computation
//Alignment
if (exposant1>exposant2) {
exposantRes = exposant1;
while (exposant1>exposant2) {
mantisse2>>=1;
exposant2++;
}
} else {
exposantRes = exposant2;
while (exposant2>exposant1) {
mantisse1>>=1;
exposant1++;
}
}
buf = (unsigned long int)mantisse1 + (unsigned long int)mantisse2;
//Rescale
while (buf>0xFFFFFFFF) {
buf>>=1;
exposantRes++;
}
mantisseRes = buf;
// The sign is ignored (for the moment)
signeRes = signe1;
exposantRes<<=23;
//RePack
res = (signeRes?(1<<31):0);
res=res|exposantRes;
res=res|(((unsigned long int)mantisseRes&0x7FFFFFFF)<<8);
Ah ok, erreur très bête.
Il s'agit d'un malloc (strlen (repertoire->d_name)+1);
Je n'avais absolument pas pensé à ce problème.
Merci beaucoup, tu m'as fait gagner beaucoup de temps, car j'étais très loin de localiser le problème ici.
En effet, c'est avec l'expérience que l'on remarque cela.
En effet, c'est bien un exercice, mais le pb c'est que je dois le rendre lundi (comme d'habitude quoi !)
Alors, je crois simplement avoir fait un free(tE) et tout mon appli remarche !!
Par contre, j'aimerais savoir pourquoi tu penses qu'il y a un pb au niveau du malloc (j'en fait 2 à cause du readdir) ?
Sinon, mon programme a parfois un comportement étrange par exemple sur /usr/bin :
xfce4-screenshooter
xfce4-session
xfce4-session-logout
xfce4-taskmanager
xfce4-tips
xfce4-volstatus-icon Il y a des caractères spéciaux sur certains éléments, et je ne comprends pas pourquoi :( Serait-ce le malloc ?
Merci pour tes conseils/commentaires, je vais m'en occuper
Ok, cette écriture est géniale, et me permet donc d'éviter d'écrire des doublons.
Ce qui est dommage c'est que dans la plupart des tutos que j'ai trouvé sur le net, elle n'est pas indiqué, alors que c'est un vrai raccourci.
En fait, le segfault porte sur ma fonction qui a besoin d'un fichier correct pour marcher.
Sinon, pour mon dossier fichiers/, il y a un fichier que je n'utilise pas.
Donc en fait nbfichiers = commande ls - 1
Ta commande me donne :
shell: line 16 : fichiers/fichier01.txt: Permission non accordée (pour tous les fichiers)
# JM2L
Posté par Animatrix . En réponse à la dépêche Rencontres et Soirées Accès Libre sur la Côte d'Azur en novembre 2009. Évalué à 3.
On compte aussi sur votre présence :)
http://jm2l.linux-azur.org/
[^] # Re: Une implémentation
Posté par Animatrix . En réponse au message Addition de flottants. Évalué à 1.
J'aimerais mettre l'opérateur ternaire sous une forme "normale", mais je ne vois pas comment :
res = (sr?(1<<31):0) | er | (((unsigned int)mr&0x7FFF)<<8);
j'ai réussi à faire :
res = (sr?(1<<31):0);
res=res|er;
res=res|(((unsigned long int)mr&0x7FFFF)<<8);
Autre question, je dois avoir une mantisse en unsigned long int
Je la récupère correctement, mais j'obtiens des résultats incorrects, voila mon code :
void separeFloat (float x, char *sig, char *exp, unsigned long int *mant);
float fadd(float a, float b) {
char signe1, signe2, signeRes;
unsigned long int mantisse1, mantisse2, mantisseRes;
unsigned long int buf;
char exposant1, exposant2, exposantRes;
unsigned int res;
separeFloat(a, &signe1, &exposant1, &mantisse1);
separeFloat(b, &signe2, &exposant2, &mantisse2);
//computation
//Alignment
if (exposant1>exposant2) {
exposantRes = exposant1;
while (exposant1>exposant2) {
mantisse2>>=1;
exposant2++;
}
} else {
exposantRes = exposant2;
while (exposant2>exposant1) {
mantisse1>>=1;
exposant1++;
}
}
buf = (unsigned long int)mantisse1 + (unsigned long int)mantisse2;
//Rescale
while (buf>0xFFFFFFFF) {
buf>>=1;
exposantRes++;
}
mantisseRes = buf;
// The sign is ignored (for the moment)
signeRes = signe1;
exposantRes<<=23;
//RePack
res = (signeRes?(1<<31):0);
res=res|exposantRes;
res=res|(((unsigned long int)mantisseRes&0x7FFFFFFF)<<8);
return *((float*)&res);
}
Je ne vois pas où je me trompe, car je trouve :
2.3 + -3.2 = 36893488147419103232.000000 -> gloups
[^] # Re: Une implémentation
Posté par Animatrix . En réponse au message Addition de flottants. Évalué à 1.
Je n'ai plus qu'à l'adapter à mon code :)
[^] # Re: Fonction obsolète
Posté par Animatrix . En réponse au message Alarme (boucle). Évalué à 1.
Merci bcp
# Réponse ??
Posté par Animatrix . En réponse au message Alarme (boucle). Évalué à -1.
while(x)
{
alarm(5);
pause();
}
Le problème c'est que ca marche à peu près comme je veux, mais il a tendance a m'oublier certaines instructions...., lol
[^] # Re: Fonction obsolète
Posté par Animatrix . En réponse au message Alarme (boucle). Évalué à 1.
Mois je veux faire une boucle infinie et je n'y arrive pas.
# Erreur
Posté par Animatrix . En réponse au message Alarme (boucle). Évalué à 1.
C'est
#include <unistd.h></code
# Rep
Posté par Animatrix . En réponse au message Traitement du signal. Évalué à 1.
EN fait, je crée un
static void traitement (int i)
maProcedure;
et je fais un
signal(SIGINT, traitement)
Merci pour l'aide :)
[^] # Re: Traitement du signal
Posté par Animatrix . En réponse au message Traitement du signal. Évalué à 3.
AU lieu d'un msg sur le forum, j'ai fait un journal :(
[^] # Re: C'est un exercice?
Posté par Animatrix . En réponse au message Problème pour l'affichage du contenu de plusieurs répertoires. Évalué à 1.
Il s'agit d'un malloc (strlen (repertoire->d_name)+1);
Je n'avais absolument pas pensé à ce problème.
Merci beaucoup, tu m'as fait gagner beaucoup de temps, car j'étais très loin de localiser le problème ici.
En effet, c'est avec l'expérience que l'on remarque cela.
[^] # Re: C'est un exercice?
Posté par Animatrix . En réponse au message Problème pour l'affichage du contenu de plusieurs répertoires. Évalué à 1.
Mais, ils n'utilisent des malloc que pour un char *file;
et un plus leur code est pas du tout commenté (lol !!)
[^] # Re: C'est un exercice?
Posté par Animatrix . En réponse au message Problème pour l'affichage du contenu de plusieurs répertoires. Évalué à 1.
Alors, je crois simplement avoir fait un free(tE) et tout mon appli remarche !!
Par contre, j'aimerais savoir pourquoi tu penses qu'il y a un pb au niveau du malloc (j'en fait 2 à cause du readdir) ?
Sinon, mon programme a parfois un comportement étrange par exemple sur /usr/bin :
xfce4-screenshooter
Il y a des caractères spéciaux sur certains éléments, et je ne comprends pas pourquoi :( Serait-ce le malloc ?xfce4-session
xfce4-session-logout
xfce4-taskmanager
xfce4-tips
xfce4-volstatus-icon
Merci pour tes conseils/commentaires, je vais m'en occuper
[^] # Re: Nouveau pb
Posté par Animatrix . En réponse au message Problème utilisation variables. Évalué à 1.
Ce qui est dommage c'est que dans la plupart des tutos que j'ai trouvé sur le net, elle n'est pas indiqué, alors que c'est un vrai raccourci.
En tout cas, merci beaucoup pour l'aide
[^] # Re: Nouveau pb
Posté par Animatrix . En réponse au message Problème utilisation variables. Évalué à 1.
Parce qu'en fait, je croyais qu'il fallait en mettre toujours de l'utilisation d'une fonction
# Merci
Posté par Animatrix . En réponse au journal Hypermarché en ligne : pas tous mauvais. Évalué à 1.
# Nouveau pb
Posté par Animatrix . En réponse au message Problème utilisation variables. Évalué à 1.
J'aimerais passer en argument le nom du dossier/fichier, j'ai essayé :
if [ -z $2 ]
then
$2="Fichiers/fichiers"
fi
for file in ($2)*
do
Mais j'obtiens cette erreur :
shell: line 12: =Fichiers/fichier: Aucun fichier ou dossier de ce type
shell: line 15: Ouvre le fichier maj $file $3
[^] # Re: hou la on se complique la vie...
Posté par Animatrix . En réponse au message Problème utilisation variables. Évalué à 1.
for file in Journees/journee*
do
maj $file
done
[^] # Re: hou la on se complique la vie...
Posté par Animatrix . En réponse au message Problème utilisation variables. Évalué à 1.
Sinon, pour mon dossier fichiers/, il y a un fichier que je n'utilise pas.
Donc en fait nbfichiers = commande ls - 1
Ta commande me donne :
shell: line 16 : fichiers/fichier01.txt: Permission non accordée (pour tous les fichiers)
Pourtant c'est pas une erreur de droit :
-rw-r--r-- 1 animatrix animatrix 403 sept. 13 23:57 fichier01.txt
[^] # Re: C'est pourtant simple ...
Posté par Animatrix . En réponse au message Complémentation à 2. Évalué à 1.
J'ai compris comment passer de l'un à l'autre.
Mais on me demande d'utiliser les opérateurs de décalage ou bits à bits, tu saurais comment faire ?
Merci
# Livecd et installation
Posté par Animatrix . En réponse au journal Test de la Fedora 8. Évalué à 1.
Bravo Fedora !
# Moyen...
Posté par Animatrix . En réponse à la dépêche Miro 1.0 change la télévision sur ordinateur. Évalué à 0.
Pour le peu que j'ai testé, il cherche les vidéos sur Youtube... et les affiche...
[^] # Re: Ca colle pas ton histoire
Posté par Animatrix . En réponse au journal Mandriva / Microsoft : Renversement de situation. Évalué à 3.
http://www.webpronews.com/topnews/2007/11/09/mandriva-regain(...)
[^] # Re: scan-printers not found. Aborting
Posté par Animatrix . En réponse au journal hardware4linux.info. Évalué à 1.
[^] # Re: scan-printers not found. Aborting
Posté par Animatrix . En réponse au journal hardware4linux.info. Évalué à 1.
QUe dois-je faire ensuite ?
# scan-printers not found. Aborting
Posté par Animatrix . En réponse au journal hardware4linux.info. Évalué à 1.
Mais quand je fais la commande je tombe sur :
scan-printers not found. Aborting
J'utilise une Gentoo.