byte, short, int, Long, char数据类型复习
package com.kun.base;
/**
byte的取值范围:-128~127(-2的7次方到2的7次方-1)
short的取值范围:-32768~32767(-2的15次方到2的15次方-1)
int的取值范围:-2147483648~2147483647(-2的31次方到2的31次方-1)
long的取值范围:-9223372036854774808~9223372036854774807(-2的63次方到2的63次方-1)
char:单个字符,无符号整数,取值范围为0至65535(字符编码;输出时会转化为编码所对应的单个字符)
*/
public class Demo1 {
public static void main(String[] args) {
int a = 1;//int表示整数类型 a为一个变量(int声明了a为一个整数变量)a = 1("="将"1"赋值给了a)
int b = 2;
int c = a + b;
System.out.println(c);//将变量 c 的值打印到控制台
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);//输出结果为0 a 和 b 都是整数类型,那么结果也是整数,并且会向下取整
System.out.println(a /(double) b);//输出结果为0.5 b 被强制类型转换为 double 类型
System.out.println(a % b);//取余 1
System.out.println("=======================================");
byte a1 = 100;
byte b1 = -100;
byte c1 = (byte) (a1+b1);
System.out.println(c1);
System.out.println(a1/b1);
System.out.println(a1*b1);//-10000 byte、short、char类型变量参与算术运算时,会先自动提升为int类型
/**
* byte a1=100 → 提升为int 100
*
* byte b1=-100 → 提升为int -100
*
* 计算100 * (-100) = -10000(int类型结果)
*/
System.out.println("=======================================");
//short 方法与上类似
//Long a2 = 10000L;//L 后缀表示这些数值是 long 类型
//Long b2 = 20000L;//L 后缀表示这些数值是 long 类型
char a5 = '中';//单个字符
char b5 = 'A';//单个字符
char c5 = (char) (a5 +b5);
System.out.println(a5);
System.out.println(b5);
System.out.println(c5);
/**
* 变量a2被赋值为字符'中'
* 变量b2被赋值为字符'A'
* 当执行a2 + b2时,Java会将这两个字符的码值相加,得到结果。
* 由于c2被声明为char类型,所以需要对相加的结果进行强制类型转换(char),以便将其赋值给c2。
* 强制类型转换可能会丢失精度或导致结果错误,但在这种情况下,结果仍然在char类型可表示的范围内,因此转换是有效的。
* 最终,c2的值为字符'乮',这是a2+b2的码值所对应的字符
*/
char d5 = 1000;//此处默认为字符的码值
char e5 = 2000;//此处默认为字符的码值
char f5 = (char) (d5+e5);//d2与e2的码值相加3000所对应的字符
System.out.println(d5);//字符编码1000 Ϩ
System.out.println(e5);//字符编码2000 ߐ
System.out.println(f5);//字符编码3000 ஸ
}
}