Răspuns :
► Daca cerinta este determinarea valorii expresiei [tex]2^{255}[/tex] (ceea ce e improbabil deoarece e un numar absolut astronomic cu 77 de cifre) atunci raspunsul este 57896044618658097711785492504343953926634992332820282019728792003956564819968
Determinarea numarului in baza 10 folosind un program C++/Python/Java (nu ai precizat limbajul de programare, te rog specifica in comentariu daca asta iti trebuie) e o bataie de cap suplimentara, numarul NU incape in niciuna din tipurile de date predefinite. Aflarea numarului in baza 2 e foarte simpla, afisezi un 1 urmat de 255 de zerouri.
Sau in notatie stiintifica 5.7896045e+76 (aproximativ [tex]5.7896045*10^{76}[/tex])
Stiai ca ....
- daca mai inmultesti numarul acesta cu 2 inca odata si obtii numarul de valori diferite care pot fi folosite intr-un algoritm de criptare standard folosit in practica, "military grade encryption" (algoritm AES-256)
► Daca se cere ultima cifra a lui [tex]2^{255}[/tex], cerinta mult mai decenta pentru scoala/liceu atunci stiind ca
[tex]U(2^{4k})=6\\U(2^{4k+1})=2\\U(2^{4k+2})=4\\U(2^{4k+3})=8\\[/tex]
Si ca 255 = 63*4 + 3, rezulta ca ultima cifra a lui [tex]2^{255}[/tex] este 8.
Daca ai nevoie de mai mult de ultima cifra (sau ultima cifra in alta baza) poti folosi teorema Fermat-Euler.
► Daca vrei sa afli 2 XOR 255 (simbolul ^ e operatorul XOR pe biti in multe limbaje de programare) atunci :
255 se scrie ca 11111111 in baza 2 pe 8 biti
2 se scrie ca 00000010 in baza 2 pe 8 biti
11111111 ^ 00000010 = 11111101, numar care inseamna 253 in baza 10.
Amintim regulile XOR :
0 XOR 0 => 0
1 XOR 0 => 1
0 XOR 1 => 1
1 XOR 1 => 0