-3

Can anyone explain why adding an empty single quotation (at the end of this code) creates 32? I have changed the integers 3 and 4 and every time I do this, the base number seems to be 32.

 public static void main(String[] args) {

        int number = 5;
        System.out.println("Initial Value: " + number);


        number = number*2;

        number = number*2;
        System.out.println("\n1. After doubling it twice: " + number);


        number = number + 3;

        number += 3;
        System.out.println("\n2. After adding 3 twice: " + number);


        number -= 12;
        System.out.println("\n3. After subtracting 12: " + number);


        number = number / 3;
        System.out.println("\n4. After dividing by 3: " + number);


        System.out.println();
        number ++;
        System.out.println("add 1: " + number);
        number ++;
        System.out.println("add 1: " + number);
        number ++;
        System.out.println("add 1: " + number);
        number ++;
        System.out.println("add 1: " + number);
        System.out.println("\n5. After adding 1 four times: " + number);


        number -= 1;

        System.out.println("\n6. After decrementing once: " + number);


        int remainder = number%= 3;;
        System.out.println("\n7. Remainder when dividing by 3 is :" + remainder);


        int a = 2, b = 3, c = 5;
        double d1, d2, d3, d4;
        d1 = a + b * c / 2; 
        d2 = (a + b * c) / 2; 
        d3 = (a + b) * c / 2; 
        d4 = (a + b) * (c / 2); 
        System.out.println("\n8. Values: " + d1 + " : " + d2 + " : " + d3
                + " : " + d4);


        int p, q;
        p = 10;
        q = 10;
        p += q++;

        System.out.println("\n9. Result is: " + (p + q));


        double d7 = 4.3, d8 = 34.7;
        double truncatedSum = (4.3 + 34.7);
        System.out.println("\n10. Sum is " + truncatedSum);


        System.out.println("\n11.");

        System.out.println("fred " + 3 + 4); 
        System.out.println(3 + 4 + " fred"); 
        System.out.println("" + 3 + 4); 
        **System.out.println(' ' + 3 + 4);**


    }

OUTPUT

Initial Value: 5

  1. After doubling it twice: 20

  2. After adding 3 twice: 26

  3. After subtracting 12: 14

  4. After dividing by 3: 4

add 1: 5 add 1: 6 add 1: 7 add 1: 8

  1. After adding 1 four times: 8

  2. After decrementing once: 7

  3. Remainder when dividing by 3 is :1

  4. Values: 9.0 : 8.0 : 12.0 : 10.0

  5. Result is: 31

  6. Sum is 39.0

11. fred 34
7 fred
34
39

xenteros
  • 15,586
  • 12
  • 56
  • 91
Olivia
  • 9
  • 1
  • The single quoted caracter is treated as an integer. Also, that single quote is not empty, it contains a space. Whose value (inASCII) is 32. add 3 and 4, and you got your 39 – litelite Jul 31 '17 at 12:59

2 Answers2

2

Here the thing

System.out.println(' ' + 3 + 4);

' ' is of char type which is a numeric data type in Java:

char: The char data type is a single 16-bit Unicode character. It has a minimum value of '\u0000' (or 0) and a maximum value of '\uffff' (or 65,535 inclusive).

and it corresponds to a numeric value of space character in UNICODE chart, e.g. 32.

Therefore, the result of this computation will be 32 + 3 + 4 or 39 as you can see in your output.

Artem Barger
  • 40,769
  • 9
  • 59
  • 81
0
' ' + 3 + 4

as chars are numeric types in Java, ' ' stands for space character int value Space is 32 in ASCII, so the result is:

32 + 3 + 4 = 39
xenteros
  • 15,586
  • 12
  • 56
  • 91