Mi sono imbattuto in uno scenario interessante, quando si lavora con l'operatore di spostamento bit per bit. Se il secondo operando è negativo, come funziona l'operazione di spostamento bit a bit? .Operatore bit shift con spostamento con numero negativo
i.e a < < b, "< <" sposta un bit pattern a sinistra di b bit in a. Ma se b è neagtive, non dovrebbe essere un errore in fase di runtime?
Sono in grado di eseguire correttamente il codice riportato di seguito, ma non capisco come funziona?
public static void bitwiseleftShift(char testChar)
{
int val=testChar-'a';
int result= 1<<val;
System.out.println("bit wise shift of 1 with val="+val+" is "+result);
}
ingresso
bitwiseleftShift('A');// ASCII 65
bitwiseleftShift('0'); // ASCII 48
Risultati
bit wise shift of 1 with val=-32 is 1
bit wise shift of 1 with val=-49 is 32768
ASCII per 'a' è 97. Qualcuno può aiutarmi a capire come funziona?
Grazie John! Questo risponde .. Dice che non posso accettare risposta fino a 6 minuti in più ... :(A proposito, grande fan! Sono contento che tu abbia risposto! – prashantsunkari