long d = 2147483647;
1.上述代码没有问题,java中2147483647默认被当做int来处理,小容量可以自动赋值给大容量,自动类型转换。但是大容量不可以直接赋值给小容量,需要强转,但强转运行时可能会损失精度。
2.整数没有超范围可以直接赋值给char
char a = 97;
3.二进制原码反码以及补码
对于一个正数来说,二进制原码、反码、补码是同一个,完全相同。
int i =1
对应的二进制原码: 00000000 00000000 00000000 00000001
对应的二进制反码: 00000000 00000000 00000000 00000001
对应的二进制补码: 00000000 00000000 00000000 00000001
对于一个负数来说
int i = -1
对应的二进制原码: 00000000 00000000 00000000 10000001
对应的二进制反码: 00000000 00000000 00000000 11111110
对应的二进制补码: 00000000 00000000 00000000 11111111
public static void main(String[] args){char c1 = 'a';byte b = 1;System.out.println(c1 + b);}
结果为98
public class Project01 {public static void main(String[] args) {long a = 10L;char c = 'a';short s = 100;int i = 30;int x = (int)(a + c + s + i);System.out.println(x);}}
结果为237
4.java中“+”不仅可以用来计算,还可以用来进行字符串的拼接。
