Byte、Short、Int、Long、Float、Double、Char、Boolean
float n0 = 2.7;//错误 2.7F 默认小数double double n1 = 2.7; //2.7 double n2 = 8.1/3;//2.69999999997 byte b1 = 10;//对 int n2 = 1; byte b2 = n2;//错误 原因:如果是变量赋值,判断类型 char c1 = b1;//错误 原因:byte不能自动转换 char
自动类型转换:
当java程序在进行赋值或运行时,精度小的类型自动转换为精度大的数据类型。
byte、short 和char 之间不能相互转换。
char–>int–>long–>float–>double
byte–>short–>int–>long–>float–>double
byte、short、char 三者可以计算,在计算时首先转换成int类型
byte b2 = 1; byte b3 = 2; short s1 = 1; short s2 = b2 + s1;//错误,b2 + s1 => int byte b4 = b2 + b3;//错误,b2 + b3 =>int
boolean 不参与转换
自动提升原则:表达式结果类型自动提升为操作数最大的类型
强制类型转换:加()强制符号只针对最近的操作数有效,忘完会使用() 提升优先级
Byte和short类型在进行运算时,当作int类型处理。
字符编码:ASCII:编码表 一个字节表示,一个128个字符,实际上一个字节可以表示256个字符,只用128个。
Unicode:编码表 固定大小的编码 使用两个字节来表示字符,字母和汉字统一都是占两个字节,这样浪费空间。
utf-8:编码表,大小可变的编码 字母使用1个字节,汉字 使用3个字节。
gbk:可以表示汉字,而且范围广,字母使用一个字节,汉字2个字节。
gb2312:可以表示汉字,根本gb312 big5码:繁体中文,台湾,香港。 短路与 &&,短路或||,取反! 逻辑与&,逻辑或|,^逻辑异或 2、&逻辑与:不管第一个条件是否为false,第二个条件都要判断,效率低。 3、开发中,我们使用的基本是使用与&&,效率高 短路或|| : 条件1||条件2 两个条件只要有一个成立,结果为true,否则为false 逻辑或|: 条件1|条件2 只要有一个条件成立,结果为true 三元运算符: 条件表达式?表达式1:表达式2 二进制:0,1,满2进1,以0b或0B开头。 十进制:0-9,满10进1 八进制:0-7,满8进1,以数字0开头表示 十六进制:0-9以及A(10)-F(15),满16进1,以0x或0X开头表示。此处A-F不区分大小写。 其他进制转十进制: 二进制转十进制:0b1011=1*2^0+2*2^1+0*2^2+1*2^3=11 八进制转十进制:0234=4*8^0+3*8^1+2*8^2=4+24+128=156 十六进制转十进制:0x23A=10*1+3*16+2*16^2=570 十进制转二进制:该数不断除以2 ,直到商为0 为止。然后将每步的余数倒着写。34=0B00100010(一个字节8位,不够8位前面补0) 十进制转八进制:该数不断除以8 ,直到商为0 为止。然后将每步的余数倒着写。 131=0203 十进制转十六进制:该数不断除以16 ,直到商为0 为止。然后将每步的余数倒着写。 237=0xED 二进制转八进制:从低位开始三个为一组 ,转换成对应的八进制数即可。 0b11 010 101=> 0325 二进制转十六进制:从低位开始四个为一组 ,转换成对应的十六进制数即可。 0b11010101=>0xD5 八进制转换成二进制:八进制数的每一位转换成对应的一个三位的二进制数。 0237=0b10011111 十六进制转换成二进制:十六 进制数的每一位转换成对应的一个四位的二进制数。 0x2(0010) 3(0011) B(1011) =0b001000111011 1、算术右移>>:低位溢出,符号位不变,并用符号位补溢出的高位 2、算术左移<<:符号位不变,地位补0 3、>>>逻辑右移也叫无符号右移,运算规则是:地位溢出,高位补0 4、特别说明:没有<<<符号 4<<3//4*2*2*2 15>>2//15/2/2 1、二进制的最高位是符号位:0表示正数,1表示负数。(口诀:0->0 ,1->-) 2、正数的原码、反码、补码都一样。(三码合一) 3、负数的反码=它原码符号位不变其他位取反(0->1,1->0) 4、负数的补码=它的反码+1,负数的反码=负数的补码-1. 5、0的反码、补码都是0。 6、Java没有无符号数,换言之,Java中的数都是有符号的。 7、在计算机运算的时候,都是以补码的方式来运算的。 8、当我们看到运算结果的时候,要看它的原码。
1、&&短路与:如果第一个条件为false,则第二个条件不会判断,最终结果为false。a b a&b a&&b a|b A||b !A A^B true true true true true true false false true false false false true true false true false true false false true true true true false false false false false fales true false
输入:Scanner scanner = new Scanner(System.in);
进制:



