Machine-translated by Google. Questions are authored in English.
Top

Discussion

What will be the output of the program?

public class Snippet48
{
    void execute()
    {
        long big = 2147483647L + 1;
        int truncated = (int) big;
        System.out.println(big + " " + truncated);
    }

    public static void main(String[] args)
    {
        Snippet48 demo = new Snippet48();
        demo.execute();
    }
}

  • A.2147483648 2147483648
  • B.-2147483648 -2147483648
  • C.2147483648 2147483647
  • D.2147483648 -2147483648

Answer: D

The literal is a long, so the addition is done in long arithmetic and gives the mathematical answer without wrapping. Casting that to int discards the high bits and produces the smallest int. The cast is where information is lost, not the addition.

No comment is present. Be the first to comment.
Loading…

Post your comment

Please log in or register to post a comment.