There are 4 Java primitives dealing with integer data. The difference is the number of bytes: 1, 2, 4 or 8. The number of bits is the number of bytes multiplied by 8-bits.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_pGRbZwKemmVNzmG95KTl0dvISHJGHNNeIYDBlysl9gFTksiiQ6fOVgbp0vdnasVQFAd4xKwsrMpVOu0lBMLKdT85qQvl7MDnBxIsQB0B3M3WQNqyfLFJXmWH8d3oLu0jCZ2p42ikdVUO/s1600/java3+-+1.png)
byte is 8-bits and can represent a number between -128 to +127. If we try to represent 128, which is out of range, it will be seen as -128.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3ZAziwKOS3OdQXSDU5wq3CQ9vKb3YK8pgByP9nmF-_88yPHCQSFci5FJOh7dg_tuhxMi6-aJgXC54FPFLL1piUP5dhKcz1VhrGRt3_EmLorCrmQgZJrojVeXloHD6xe6cXJIIzJkj900U/s1600/java3+-+2.png)
// *** 1. Start (8-bits, -128 to +127) byte b1 = 5; byte b2 = -5; byte b3 = (byte)128; System.out.println("b3 = " + b3); // *** 1. End
short is 16-bits and can represent a number between -32,768 to +32,767. Again, we can see that representing 32,768, which is out-of-range, is seen as -32,768.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYlUr7v3GCishD7lHeKehNPEado0xNESUsoDB6fpxbrJbGaSNpG-7TEDVkRplpQsBboKEQYiw_qTWGM8uQ13L5YRmD9G1L-Mj7qdUVkwCBIhRATyyu__S2OGmYdwt6X8BqYiAsc09xY4lj/s1600/java3+-+3.png)
// *** 2. Start (16-bits, -32768 to 32767) short s1 = 5_000; short s2 = -5_000; short s3 = (short)32768; System.out.println("s3 = " + s3); // *** 2. End
int is 32-bits and can represent a number between -2^31 to +2^31-1. Any underscores in numbers are ignored.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_dqqFh1MSK-onq4-RiyuZZoCwn6tz9eNAc239BD5wfG1FsB1trIZq5DQMqm_Ws4pllD6zQmyYuiVWcfFKxWy5NhTMhP2Oe9DIP6lPxQLvk_x04LQdaVMazAKh7zkCovJweIWy4BkIl44c/s1600/java3+-+4.png)
// *** 3. Start (32-bits, -2,147,483,648 to // *** +2,147,483,647) int i1 = 5_000_000; int i2 = -5_000_000; int i3 = 2_147_483_647 + 1; System.out.println("i3 = " + i3); // *** 3. End
long is 64-bits and can represent a number between -2^63 to +2^63-1. To represent a large number you have to put L at end of number, since the default is integer with a lower range. You can also use lower-case letter l but it looks too much like the number 1.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFK-TwZK_cKLJUAw_TCvImmQcqiDmytmmsIxTVoW61vcAvjAjPMc2cDaXaCewGGR0m5O1jCvs9MKtOvmKHNTo_e4p6IOxlEEKSfOZY7DRX4FRaHzaX5fhr3J137Cl4KpQMlO9bsW-gn7F4/s1600/java3+-+5.png)
// *** 4. Start (64-bits) // *** (From -9223372036854775808 to // *** +9223372036854775807) long l1 = 50_000_000_000L; long l2 = 50000000000L; System.out.println("l2-l1 = " + (l2-l1)); // *** 4. End
package com.javaAndroid.ex3; public class Ex3 { public static void main(String[] args) { // *** 1. Start (8-bits, -128 to +127) byte b1 = 5; byte b2 = -5; byte b3 = (byte)128; System.out.println("b3 = " + b3); // *** 1. End // *** 2. Start (16-bits, -32768 to 32767) short s1 = 5_000; short s2 = -5_000; short s3 = (short)32768; System.out.println("s3 = " + s3); // *** 2. End // *** 3. Start (32-bits, -2,147,483,648 to // *** +2,147,483,647) int i1 = 5_000_000; int i2 = -5_000_000; int i3 = 2_147_483_647 + 1; System.out.println("i3 = " + i3); // *** 3. End // *** 4. Start (64-bits) // *** (From -9223372036854775808 to // *** +9223372036854775807) long l1 = 50_000_000_000L; long l2 = 50000000000L; System.out.println("l2-l1 = " + (l2-l1)); // *** 4. End } }
No comments:
Post a Comment