Ho creato questo programma per necessità, volevo sapere quali erano i 32 valori che avessero una sola cifra di valore 1 e tutte le altre cifre "0"
Così ho buttato qualche comando ed in pochi secondi ho trovato tutti gli altri 31 valori che mi interessavano.
Sono partito dalla cifra scontata di
1 = 00000000 00000000 00000000 00000001
e poi mi sono shiftato a sx di un posto alla volta stampando il valore.
ecco il codice:
public class Unobit
{
public static void main (String[] args)
{
int a = 1;
int cont = 0;
while (cont !=32)
{
cont++;
System.out.println(a);
a = a<<1;
}
}
}
Ecco il risultato:
1
2
4
8
16
32
64
128
256
512
1024
2048
4096
8192
16384
32768
65536
131072
262144
524288
1048576
2097152
4194304
8388608
16777216
33554432
67108864
134217728
268435456
536870912
1073741824
-2147483648
Come potete notare la cifra successiva si ottiene moltiplicando per due la precedente!(non è un caso! è così proprio perchè stiamo parlando di cifre binarie!)
L'ultimo numero è negativo perchè entra in gioco ilcomplemento a due (se non sapete cos'è non ci fate caso più di tanto.)
Potete trovare tutti i miei programmi quì.
Nessun commento:
Posta un commento