Les 65536 premiers nombres hexadécimaux

Répondre
Partager Rechercher
[Message effacé à la demande de l'auteur]
Je ne peux pas t'aider hélas, pourquoi n'irais tu pas sur un forum de magazine de science, ça doit exister non ?
Mardil n'est pas là ce soir ?
au pire voici un ptit programme en c si ça peut t'aider
Code PHP:


void ajouter_un
(charc)
{
if((*
c>='0' && *c<'9') || (*c>='A' && *c<'F'))
    (*
c)++;
if(*
c=='9')
    (*
c)='A';
if(*
c=='F')
    (*
c)='0';
}


static 
void main(int argcchar argv[])
{
     
char nombre[4]={0,0,0,0,'\\0'};
     
int i,j,k,l;


     for(
i=0;i<16;i++)
    {
         for(
j=0;j<16;i++)
        {
             for(
k=0;k<16;i++)
            {
                for(
l=0;l<16;i++)
               {
                    
fprintf(stdout,"%c%s",'#',nombre);
                    
ajouter_un(nombre+3);
               }
               
ajouter_un(nombre+3);
               
ajouter_un(nombre+2);
           }
           
ajouter_un(nombre+3);
           
ajouter_un(nombre+2);
           
ajouter_un(nombre+1);
       }
       
ajouter_un(nombre+3);
       
ajouter_un(nombre+2);
       
ajouter_un(nombre+1);
       
ajouter_un(nombre);
    }


ensuite tu fait une redirection dans un fichier
hexa.exe > fichier.txt
Et si tu comprend rien a ce que j'ai ecris j'essayerais de le faire moi meme.
Mais j'imagine que tu doit comprendre, emacs doit pas te servir pour du traitement de texte .
printf() ne prend pas de flux en premier paramètre, au contraire de fprintf()
de plus "nombre" n'est pas une chaine de caractères puisqu'il lui manque le caractère nul

ensuite, pourquoi faire 4 boucles imbriquées et des conversions que sait faire printf() ?
Code PHP:

unsigned int i ;
printf"%X\n" ) ;
for( 
i++ )
  
printf"%X\n" ) ; 
VIM est capable de te générer ça.
En effet il possède la fonction «incrémenter», mappée sur CTRL-A
si la chaine sous le curseur est de la forme 0x000, il la considère comme un entier hexadécimal.

Donc :
i0x000[esc] pour insérer l'hexadécimal 000
qayyp[Ctrl-A]q pour faire une macro «dupliquer la ligne courante et l'incrémenter»
65334@a pour exécuter la macro enregistrée 65334 fois

et voilà

PS : merci d'avoir fait un thread me permettant de prouver la supériorité de VIM sur les autres éditeurs (je ne crois pas qu;il y ait une fonction équivalente à CTRL-A sous emacs, en tous cas si il en existe une elle est récente.)
Citation :
Provient du message de nahp
printf() ne prend pas de flux en premier paramètre, au contraire de fprintf()
de plus "nombre" n'est pas une chaine de caractères puisqu'il lui manque le caractère nul

ensuite, pourquoi faire 4 boucles imbriquées et des conversions que sait faire printf() ?
Code PHP:

unsigned int i ;
printf"%X\n" ) ;
for( 
i++ )
  
printf"%X\n" ) ; 
petite optimisation :
Code PHP:

int i;
for ( 
0ii++ )
  
printf"%X\n") ; 
J'ai viré le unsigned ; je déconseille très fortement l'utilisation de unsigned en c à ceux qui ne maitrisent pas ce langage sur le bout des doigts, pour des histoires de conversion automatique dans le cas de comparaisons qui donnent des résultats déroutants pour le programmeur occasionnel.
ceux qui ne sont pas convaincus tenteront de comprendre pourquoi le programme
Code PHP:

include<stdio.h>

int main() {
   
unsigned int i=10;
   if (
i<-1)
      
printf("inférieur\n");
   else
      
printf("supérieur\n");

écrit "inférieur".
[Message effacé à la demande de l'auteur]
[Message effacé à la demande de l'auteur]
Juste comme ça: je crois que les int vont de -32768 à +32767, par conséquent, ça me parait difficile d'utiliser un int, m'enfin c'est que mon avis si tu veux les 65536 premiers décimaux en hexadécimal.
Citation :
Provient du message de Lumina
VIM j'ai essayé, on ne peut pas taper de texte au clavier ! Il faut tout faire par copier-coller, c'est l'éditeur de texte le plus inutile au monde !
pardon ?
que tu aies pas réussi à l'utiliser, je conçois, il est loin d'être intuitif (il n'est pas fait pour être intuitif mais pour être puissant)
mais ne dis pas qu'il est inutile...

Si tu n'as pas réussi à taper du texte c'est que tu n'as pas vu qu'il y a 2 modes : édition et insertion. En mode édition on agit sur le texte avec des commandes, et en mode édition on insère le texte que l'on tape.

Ça peut paraitre bizarre voire compliqué au début, mais on s'y fait vite et au final on peut taper du texte beaucoup plus vite que dans des éditeurs plus intuitifs.
Citation :
Provient du message de Kathandro
Juste comme ça: je crois que les int vont de -32768 à +32767, par conséquent, ça me parait difficile d'utiliser un int, m'enfin c'est que mon avis si tu veux les 65536 premiers décimaux en hexadécimal.
C'est un short signé qui va de -32768 à +32767, un int (signé) c'est sur 32 bits (#80000000 -> #7FFFFFFF).
[Message effacé à la demande de l'auteur]
[Message effacé à la demande de l'auteur]
Citation :
Provient du message de Lumina
[i]Bon, ça ne marche pas. J'ai essayé ceci :
Code PHP:

<?php

int i
;
for ( 
065536i++ )
  
printf"%d = &#%X;\n"i) ;

?>
Et j'ai le message :
en fait le code proposé était du c, pas du php

Citation :
Pour VIM, en quoi peut-il être plus rapide qu'un traitement de texte WYSIWYG ? Il me suffit de sélectionner ce que je veux mettre en gras ou en italique ou en couleur, et d'un clic j'ai le changement !
VIM n'est pas un traitement de texte, mais un éditeur de texte.
Il ne met pas le texte en forme (même s'il est capable de faire de la coloration syntaxique, mais c'est juste au niveau de l'affichage)
Il permet d'éditer du texte très vite ; grace à ses fonctions évoluées.
Par exemple, ce que tu as demandé justement.
Entrer les nombres hexadécimaux de 0 à FFFF, sous word tu mettrais des mois, sous vim tu peux le faire en 10 secs.
Sans aller jusque là, il est vrai que cet exemple est particulier, quand tu modifies un texte il y a de nombreuses fonctions très pratiques, comme par exemple supprimer le mot suivant ( ou les 2, 3, 1346134 mots suivants), auto-complétion de mots (utile pour taper les noms de variables quand on programme), aller à la prochaine occurrence de la lettre que je donne, aller à la parenthèse fermante correspondant à celle sous le curseur, aller au prochain paragraphe, aller à la prochaine occurrence du mot sous le curseur, aller à la déclaration de la variable sous le curseur, et plein plein d'autres.
[Message effacé à la demande de l'auteur]
[Message effacé à la demande de l'auteur]
[Message effacé à la demande de l'auteur]
[Message effacé à la demande de l'auteur]
[Message effacé à la demande de l'auteur]
[Message effacé à la demande de l'auteur]
Citation :
Provient du message de Coin-coin le Canapin
moi, les programmeurs, ils m'effraient
Code:
class Programmeur : public utilisateurJOL {
protected :
   Canapin *coin2;
   Programmeur(forum JOL): utilisateurJOL(JOL) {
      coin2 = JOL.getCoinCoin();
   }
   void run() {
      PostJOL post;
      while (this->isALive()) {
         post = coin2->getPostQuiEffraye();
         JOL->poster(post);
         if (coin2->sanglotte() || coin2->monstre() || coin2->travers()) {
            estContent()
         }
      }
   }
}
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés