Oggi è 09/09/2010, 2:35

Tutti gli orari sono UTC +1 ora [ ora legale ]


Benvenuto su HACKING FANTASY! Sentiti libero di lasciare un COMMENTO sulla SEZIONE OSPITI (non serve la registrazione). Ti piace il sito e vuoi collaborare? TI INVITIAMO A REGISTRARTI, è semplice, utile e veloce. Se desideri accedere alle sezioni DOWNLOAD e DOWNLOAD FILM?? Invia un MESSAGGIO PERSONALE (MP) A ZeroCool Oppure RICHIEDI L'ABILITAZIONE nel topic della presentazione. se hai PROBLEMI CON IL FORUM o con la REGISTRAZIONE PUOI CONTATTARE ShellCoder_ o $$__ZeroCool__$$. se hai PROBLEMI CON UN UTENTE o con LO STAFF contatta per MP il GLOBAL MOD DarthRhonin.


~ [ Registrati ]   [ Login ] ~

Aggiungi HackingFantasy tra i preferiti
Imposta HackingFantasy come Homepage


 Pagina 1 di 1 [ 2 messaggi ] 
Autore Messaggio
 Oggetto del messaggio: Codice Binario E Operatori Logici/Bit a Bit
MessaggioInviato: 06/01/2010, 20:20 
Avatar utente

Iscritto il: 21/05/2009, 19:52
Messaggi: 1020
Il codice binario e' una sequenza di numeri in base 2. Questo sta a significare che dispone di due numeri soltanto: 0 e 1.

Un esempio di codice binario puo' essere il seguente:

00001000


Questo codice binario equivale al valore 8. Vediamo perche'.

Ogni numero che compone un valore binario e' formato da 1 bit. Questo significa che il numero binario 0001 equivale a 4 bit (quindi il valore 1 vale 4 bit, ma solitamente se ne includono 8 per comodita'). 8 bit formano 1 Byte, da cui poi nascono i KiloByte, i MegaByte, i GigaByte e i TeraByte. La seguente tabella mostra com'e' formata la memoria dei bit (sappiamo che 8 bit = 1 byte):

1024 Byte = 1 KiloByte
1024 KiloByte = 1 MegaByte
1024 MegaByte = 1 GigaByte
1024 GigaByte = 1 TeraByte

Adesso che abbiamo visto la memoria dei bit, vediamo come poter convertire un numero da base 2 a base 10 e viceversa.

Abbiamo il seguente numero binario:

00001010

Si procede in questo modo: considerando che i numeri sono in base 2, si parte da destra con il valore 2 elevato 0, poi si arriva al numero direttamente successivo a quello destro (quindi da 2 elevato 0 si va a 2 elevato 1), poi a quello successivo e cosi' via. In questo caso si prendono i numeri del codice binario e si moltiplicano per 2 elevato N, ergo, il valore mostrato di sopra e' facilmente convertibile in questo modo:

00001010 = (0 * 2^7) + (0 * 2^6) + (0 * 2^5) + (0 * 2^4) + (1 * 2^3) + (0 * 2^2) + (1 * 2^1) + (0 * 2^0)

00001010 = 0 + 0 + 0 + 0 + 8 + 0 + 2 + 0 = 10

Facile, no?

Per convertire invece un numero da base 10 a base 2, bisogna dividere il numero per due e conservare il resto, infine, si leggera' il risultato dei resti nel senso inverso. Meglio chiarire il tutto con l'esempio precedente:

10/2 = 0
05/2 = 1
04/2 = 0
02/2 = 0
00/2 = 0
.............


Il resto e' da trattare a parte, poiche' abbiamo considerato i numeri in base 10 come 8 bit.

Ci sono poi naturalmente i numeri ottali (numeri in base 7, ossia con valori che vanno da 0 a 7), i numeri esadecimali (numeri in base 16, ossia con valori che vanno da 0 a F - 0-1-2-3-4-5-6-7-8-9-A-B-C-D-E-F), che hanno rispettivamente come valore 8 e 16 (quindi anziche' 2^N, 8^N e 16^N...).

Adesso introdurro' gli operatori logici, ossia coloro che esprimono la logica di un'espressione, per valutare se essa e' vera o falsa (rispettivamente 1 e 0). Tra questi introdurro' i piu' generici, ossia l'AND, l'OR, il NOT e lo XOR.

Se si hanno ricordi di matematica, esattamente della logica, si sa che e' possibile esprimere la logica di un'espressione attraverso questo modo (considerando naturalmente che 0 = falso e 1 = vero):

1 AND 1 = 1
1 AND 0 = 0
0 AND 1 = 0
0 AND 0 = 0

1 OR 1 = 1
1 OR 0 = 1
0 OR 1 = 1
0 OR 0 = 0

NOT 1 = 0
NOT 0 = 1

1 XOR 1 = 0
1 XOR 0 = 1
0 XOR 1 = 1
0 XOR 0 = 0


Quando poi si apprendera' la programmazione si scopriranno gli operatori bit per bit, che, a differenza di quelli logici, valutano due valori (quindi i rispettivi codici binari) bit per bit, ossia un numero per volta. Immaginando quindi di avere i seguenti numeri: 1 e 2, gli operatori logici (quelli che non valutano bit per bit) restituiranno da questa espressione 1 (vero), poiche' ogni valore all'infuori dello 0 equivale come vero (tranne per lo XOR, esso restituira' 0, basta andare a rileggere la tabella precedente), mentre gli operatori bit per bit restituiranno 0, andiamo a vedere perche'.

1 = 00000001 (in binario, per comodita' a 8 bit)
2 = 00000010 (sempre in binario, a 8 bit)


(operatore logico)

00000001 AND 00000010 = 00000010 (l'AND esegue la moltiplicazione tra i due valori)


(operatore bit per bit)

00000001 AND 00000010 = 00000000


(perche' 1 AND 2 = 0?)

1 AND 2 = 0

0 AND 0 = 0
0 AND 0 = 0
0 AND 0 = 0
0 AND 0 = 0
0 AND 0 = 0
0 AND 0 = 0
0 AND 1 = 0
1 AND 0 = 0


Lo stesso dicasi per gli altri operatori, che applicano la propria regola (1 OR 2 = 3, ad esempio).

Spero di aver reso l'idea. (Puo' darsi che ho sbagliato qualcosa, non so spiegarmi tanto bene)



_________________
>>>>>>>>++++.^%>>--.<<-.>--.>>--.<+.+.>-.\
Non connesso
 Profilo  
 
 Oggetto del messaggio: Re: Codice Binario E Operatori Logici/Bit a Bit
MessaggioInviato: 03/04/2010, 13:26 
Amministratore
Amministratore
Avatar utente

Iscritto il: 13/04/2009, 12:51
Messaggi: 1203
Località: In una Syscall
un po' di aritmetica binaria fa sempre bene :)



_________________

non vali nulla?!
ricordati che sei stato
lo spermatozoo più veloce
del tuo gruppo. By alex


Immagine

-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GIT d- s: a--- C++ UL+++ P+ L+++ E- W++ N o+++++ K- w--
O+++ M V- PS+ PE++ Y+ PGP- t+++ 5++++ X+++ R+ tv b++ DI-- D+
G e+++++ h++ r++ y++++
------END GEEK CODE BLOCK------
Non connesso
 Profilo  
 
Visualizza ultimi messaggi:  Ordina per  
 Pagina 1 di 1 [ 2 messaggi ] 

Tutti gli orari sono UTC +1 ora [ ora legale ]


Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite


Non puoi aprire nuovi argomenti
Non puoi rispondere negli argomenti
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi

Cerca per:
Vai a:  

Affiliazioni
Image Hosted by ImageShack.us UnderAttHack FluxC0de - Hacking & Security Hacking-World


cron