Hirdetés

Új hozzászólás Aktív témák

  • skoda12
    aktív tag

    Sziasztok!
    Egy könyvben talált példa értelmezésében kérnék segítséget:
    #include <stdio.h>
    #include <stdlib.h>
    #define KULCS 0xE7

    int main()
    {
    char s[80], *p;
    int i;
    printf("Kerek egy szoveget:");
    fgets(s,80,stdin);

    for(i=0;s[i];i++)
    {
    s[i]^=KULCS; /*Titkosítás*/
    }
    printf("A titkositott szoveg:\n %s\n",s);

    p=s;
    while(*p)
    {
    *p++^=KULCS; /*Visszaállítás*/
    }
    printf("Az eredeti szoveg:\n%s\n",s);
    return 0;
    }

    A példából csak azt a részt nem értem, amikor kizáró vagy segítségével titkosítva lesz a szöveg. Azt tudom, hogy mit jelent a kizáró vagy(csak az egyik feltétel teljesülésénél lesz igaz), viszont nem értem, hogy hogyan lehet titkosítani egy hexadecimális szám + kizáró vagy segítségével. (A feladat a pointereket és sztringeket akarja magyarázni, azért van két különböző ciklus használva.)

    Probald ki papiron kezzel. Ket szamot felirsz kettes szamrendszerben. Bitenkenti XOR muveletet vegrehajtod rajta. Majd fogod az eredmeny kettes szamrendszerbeli alakjat es XOR muveletet ismet vegrehajtod a ket elozo szam kozul valamelyikkel.

Új hozzászólás Aktív témák