• STATISTIQUES
  • Il y a eu un total de 0 membres et 54861 visiteurs sur le site dans les dernières 24h pour un total de 54 861 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] Exploit-db
    Une base de données d'exploits triés par genre (GHDB, Remote, Local, Web, DOS, ShellCode) à ...
    Vulnérabilités
    [FR] Newbie Contest
    Crackme: 35, Cryptographie: 49, Hacking: 27, Javascript/Java: 17, Logique: 31, Programmation: 23, Stéganographie: 53
    Challenges
    [EN] Reddit
    Subreddit dédié à la sécurité informatique.
    Hacking
    [EN] This is legal
    Basic: 10, Realistic: 5, Programming: 1, Bonus: 11, SQL: 2, Encryption: 6, Application: 4, User Contributed: 3
    Challenges
    [FR] NewbieContest
    Nous vous proposons une série de challenges regroupant plusieurs domaines allant de l'exploitation de fail...
    Hacking
    [EN] Net Force
    Javascript: 9, Java Applets: 6, Cryptography: 16, Exploits: 7, Cracking: 14, Programming: 13, Internet: 15, Steganograph...
    Challenges
    [FR] Developpez.net
    Un forum communautaire qui se veut pour les développeurs en générale. Avec presque 500 000 membr...
    Programmation

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Mini-challenge] Normaliser la sortie d'une comparaison.
27-09-2014, 11h04 (Modification du message : 27-09-2014, 11h04 par b0fh.)
Message : #1
b0fh Hors ligne
Membre actif
*



Messages : 210
Sujets : 17
Points: 309
Inscription : Jul 2012
[Mini-challenge] Normaliser la sortie d'une comparaison.
Dans la libc, la fonction strcmp(a,b) compare deux strings, et retourne une valeur négative, nulle ou positive suivant que a est plus petit, égal, ou plus grand que b.

Cette convention a été choisie parce qu'elle donne lieu a une implémentation très efficace, qui consiste a retourner la différence entre la première paire de caractères non-égaux:

Code :
int strcmp(char *a, char *b) {
    while(*a && *a == *b) {++a; ++b; }
    return *a - *b;
}

Dans certains cas, il peut être désirable de normaliser la sortie de cette fonction, c'est a dire de transformer toutes les valeurs positives en +1, et toutes les valeurs négatives en -1.

Challenge: réalisez cette transformation sans utiliser de structures de contrôle, ni opérateurs impliquant des sauts (&&, ||, ?: ) ! Le code doit marcher quelle que soit la taille effective du type int.

EDIT: corrigé une typo, c'était *a - *b et pas a - b évidemment, merci Kiwazaru

Résolu par:
(personne pour l'instant)
+1 (0) -1 (0) Répondre


Messages dans ce sujet
[Mini-challenge] Normaliser la sortie d'une comparaison. - par b0fh - 27-09-2014, 11h04

Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  XSS challenge x4 Shirobi 10 602 09-04-2013, 20h25
Dernier message: InstinctHack
  [Challenge] [ +1 Byte[ Shirobi 3 272 15-03-2013, 00h30
Dernier message: Sh4dows
  Aide challenge Shirobi 8 489 28-01-2013, 16h04
Dernier message: Di0Sasm
  liste de site de challenge badTasTe 5 318 25-05-2012, 17h23
Dernier message: Di0Sasm

Atteindre :


Utilisateur(s) parcourant ce sujet : 3 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut