Sto provando a convertire un po 'di codice java in C# e ha funzionato perfettamente fino ad ora ma ho riscontrato un problema con l'operatore ^. In C# Console.WriteLine(127^0xffffffff);
stampe 4294967168 mentre in Java System.out.println(127^0xffffffff);
stampe -128. Mi sono guardato intorno per vedere se c'è qualcos'altro che ho bisogno di usare, ma non ho incontrato nulla.C# bitwise XOR (^) rispetto a Java bitwise XOR (^)
risposta
C# supporta firmato così come senza segno interi (Java supporta firmato solo quelli):
unchecked {
// you want signed int
int result = (int) (127^0xffffffff);
Console.WriteLine(result);
}
Il vero problema è che 0xffffffff non può essere rappresentato come un numero positivo in un int firmato, che quindi viene interpretato come int non firmato. '0xff' sarebbe interpretato come int e non unsigned int. – Voo
Ah! Silly me. Grazie mille! Selezionerò questa come risposta quando mi lascerà in circa 6 minuti. – Orion
- 1. Espansione bitwise in C++
- 2. Insidie indefinite bitwise JavaScript?
- 3. Bitwise ruotare funzione
- 4. "Bitwise E" e Sinistra-Imbottitura in C++
- 5. "Bitwise AND" in Lua
- 6. XSLT Bitwise Logic
- 7. Delphi costante espressioni bitwise
- 8. Come funziona Bitwise & (AND) in Java?
- 9. GCC Bitwise Attribute
- 10. Java Bitwise o Between Byte e Int
- 11. C# bitwise shift on ushort (UInt16)
- 12. Come implementare Bitcount utilizzando solo operatori bitwise?
- 13. Utilizzo bitwise e operatore e + in Java per risultati incoerenti
- 14. Bitwise e/o con operatore ternario
- 15. Bitwise Espressione angolare non funziona
- 16. bitwise controllare se flag flag
- 17. SQL Server Bitwise si comportano come C# Enum Bandiere
- 18. `X x = x = X();` legale C++?
- 19. "Bitwise Not" in Python che sconsiglia il complemento a 2
- 20. virgola mobile Java vs C: "x * x" differisce da "pow (x, 2)"?
- 21. x * x vs Math.pow (x, 2) prestazioni java
- 22. Perché sembra che questo bitwise shift-right non funzioni?
- 23. Log4J 2 configurazione di monitoraggio e bitwise confronto
- 24. 'dichiarare -A x' vs 'dichiarare -A x =()'
- 25. Bitwise e in javascript non restituisce il risultato previsto
- 26. \ x Fuga in Java?
- 27. Sono LALR C# e grammatica Java (x)?
- 28. C: differenza tra (int) x e floor (x)?
- 29. Perché math.factorial è molto più lento in Python 2.x rispetto a 3.x?
- 30. Piano (X) modulo X è uguale a X?
dimenticato di aggiungere, ho bisogno di stampare -128. – Orion
In Java, gli operandi vengono promossi per digitare 'int', e il risultato è un' int'. In C# gli operandi sono promossi a 'uint', e il risultato è un' uint'. Il casting appropriato dovrebbe occuparsi di questo. –