System.out.println(Integer.MAX_VALUE + 1 == Integer.MIN_VALUE);
por qué Integer.MAX_VALUE + 1 == Integer.MIN_VALUE?
es verdadero.
Entiendo que el número entero en Java es de 32 bits y no puede ir por encima de 2^31-1, pero no puedo entender por qué agregar 1 a su MAX_VALOR da como resultado MIN_VALUE y no en algún tipo de excepción. Sin mencionar algo así como la conversión transparente a un tipo más grande, como lo hace Ruby.
¿Este comportamiento especificado en alguna parte? ¿Puedo confiar en eso?
muchas buenas respuestas aquí ahora, sin embargo ahora siento curiosidad acerca de por qué preguntas "¿Puedo confiar en ello?" - ¿Por qué querrías confiar en eso? – Brian
podría ser otra pregunta, --- estaba buscando algún 'iterador' que iteraría una matriz comenzando desde el elemento N, luego, después de llegar al elemento final, comenzar a iterar desde el elemento 0 al elemento N-1 --- y este entero el comportamiento podría ser útil para eso ... pero terminé con solo dos bucles diferentes –
Como referencia, si desea obtener una excepción, algunas bibliotecas proporcionan métodos: [Guava] (http: //docs.guava-libraries. googlecode.com/git-history/release/javadoc/com/google/common/math/IntMath.html#checkedAdd(int,%20int)) [Apache] (http://commons.apache.org/math/api- 2.2/org/apache/commons/math/util/MathUtils.html # addAndCheck (int,% 20int)) –