Facendo alcuni test con operazioni bit per bit/spostamento con JavaScriptPerché 0x80000000 >> 1 in JavaScript produce un valore negativo?
0x80000000 >> 1 // returns -1073741824 (-0x40000000)
Mi aspetterei che per tornare 0x40000000 dal
0x40000000 >> 1 // returns 0x20000000
0x20000000 >> 1 // returns 0x10000000
Questo perché 0x800 ... è 0b10000 ... e quando lo si sposta a destra in un punto diventa 0b1100 ..., un numero negativo. D'altra parte, 0x400 ... è 0b0100 ... e 0x200 ... è 0b0010 ... e non hanno questo problema. – NullUserException
@NullUserException scusa se si tratta di cose molto semplici, ma perché non diventa 0b0100 ...? può 0x80 .. essere spostato in modo da produrre un 0x40 positivo ..? – lostsource
@NullUserException: dovrebbe essere una risposta –