大大大大萨达是非法SaaS
大大大大萨达是非法SaaS
1234
B F D H
int bit folt sotr long char boller
int bat sotr long
位运算符
计算机是二进制的,所有的数据使用二进制来存储。对于每个二进制来说都有原码、反码和补码。计算机存储数据的时候,使用第一位表示数字的正负,0代表正数,1代表负数。计算机存储正数的时候直接存储正数的原码,存储负数的时候存储负数的补码。(为什么存储补码,而不是原码,这个是为了方便进行数学运算,具体不解释了)
正数:原码、反码和补码相同。
负数:
原码(符号位为1)
反码(符号位不变,其余位数取反)
补码(反码+1)
只针对二进制来说的,所以在进行运算之前会转换成二进制,再运算。
& 按位与:对应位都是1才是1
| 按位或:对应位有一个1,就是1
~ 按位取反:1变0,0变1
^ 按位异或:对应位不一样才是1
<< 左移(高位抛弃,低位补0)
>> 右移(高位按照符号位补齐,低位抛弃)
>>>无符号右移(忽略符号位,高位补0,低位抛弃)
public class LogicalOperator{
public static void main(String[] args){
//int age = 80;
//boolean isAdult = age >= 18;
//boolean isZhong = age >= 25 && age <= 35;// &&与
//boolean isZhong = 25<= age <=35;// 错误
//boolean isCannotPlay = age<=17 || age>=80;// ||逻辑或 或者 or
//System.out.println(isCannotPlay);
//System.out.println(isAdult);
//System.out.println(isZhong);
//int a = 8,b = 3, c = 9;
//System.out.println(a>b && a>c);
//System.out.println(a>b && a<c);
//System.out.println(a<b && a>c);
//System.out.println(a<b && a<c);
//System.out.println(a>b & a>c);
//System.out.println(a>b & a<c);
//System.out.println(a<b & a>c);
//System.out.println(a<b & a<c);
//System.out.println(a>b || a>c);
//System.out.println(a>b || a<c);
//System.out.println(a<b || a>c);
//System.out.println(a<b || a<c);
//stem.out.println(a>b ^ a>c);
//System.out.println(a>b ^ a<c);
//System.out.println(a<b ^ a>c);
//System.out.println(a<b ^ a<c);
//System.out.println(!(a>b) );//true
//System.out.println(!(a<b) );//false
int a = 10, b = 10;
System.out.println(a>20 && (b++)>11);
System.out.println(b);
}
}
public class LogicalOperator{
public static void main(String[] args){
int age = 80;
//boolean isAdult = age >= 18;
//boolean isZhong = age >= 25 && age <= 35;// &&与
//boolean isZhong = 25<= age <=35;// 错误
boolean isCannotPlay = age<=17 || age>=80;// ||逻辑或 或者 or
System.out.println(isCannotPlay);
//System.out.println(isAdult);
//System.out.println(isZhong);
int a = 8,b = 3, c = 9;
//System.out.println(a>b && a>c);
//System.out.println(a>b && a<c);
//System.out.println(a<b && a>c);
//System.out.println(a<b && a<c);
//System.out.println(a>b || a>c);
//System.out.println(a>b || a<c);
//System.out.println(a<b || a>c);
//System.out.println(a<b || a<c);
//stem.out.println(a>b ^ a>c);
//System.out.println(a>b ^ a<c);
//System.out.println(a<b ^ a>c);
//System.out.println(a<b ^ a<c);
System.out.println(!(a>b) );//true
System.out.println(!(a<b) );//false
}
}
逻辑运算符(两边的操作数必须是boolean类型的)
规则:操作数 1 运算符 操作数 2
&& (短路 与)
|| (短路 或)
&
|
^ 异或
!非(取反)
与:两边同时满足条件的时候为true(其他情况为false)
或:两边只要满足一个条件结果为true(其他情况为false)
异或:两边结果不一样的时候结果为true(其他情况为false)
短路和不短路的区别
当可以通过操作数1判断出来的结果的时候,是否运算操作符2(短路表示不运算操作数2)
public class LogicalOperator{
public static void main(String[] args){
int age = 80;
boolean isAdult = age >= 18;
//boolean isZhong = age >= 25 && age <= 35;// &&与
//boolean isZhong = 25<= age <=35;// 错误
System.out.println(isAdult);
System.out.println(isZhong);
}
}
比较运算符
结果为boolean类型 (true/false)
<
<=
>
>=
==
!=
注意区分== 和=
System.out.println(a==b);
System.out.println(a=b);
public class CompareOperator{
public static void main(String[] args){
int a = 10;
int b = 2;
System.out.println(a<b);
System.out.println(a<=b);
System.out.println(a>b);
System.out.println(a>=b);
System.out.println(a==b);
System.out.println(a!=b);
System.out.println('a'<'b');
int c = 'a';
System.out.println(c);
}
}
赋值运算符:
= += -= *= /= %=
a = 3; a = a + b;
x = y = z = 7;//不建议
a x = b; ======> a = a x b x代表 + - * / %
public class Assignment{
public static void main(String[] args){
int a = 3;
int x,y,z;
x = y = z = 4;
a += 4;//a = a +4;
System.out.println(a);
a -= 5;
System.out.println(a);
a *= 4;
System.out.println(a);
a /= 2;
System.out.println(a);
a %= 7;
System.out.println(a);
}
}
自增和自减运算符
++
两种用法:放在前面或者放在后面
--
两种用法:放在前面或者放在后面
public class ZiZeng{
public static void main(String[] args){
//int a=9 b=5;
int a = 9;
int b = 5;
//a++;
//b--;
//++a;
//--b;
//int res1 = a++;
//int res2 = ++b;
int res1 = a++ + 1;
int res2 = ++b + 2;
System.out.println(a);
System.out.println(b);
System.out.println(res1);// res1 = a; a++;
System.out.println(res2);// b++; res2 = b;
System.out.println(a++);
System.out.println(++b);
}
}
特殊1:
使用浮点数做运算的时候的不精确性
5.3-4.2
0.08f+0.01f
6.9*7
7.6%2.0
原因:doble和float两个类型在Java中本身就是非精确存储的,再用两个近似值去做计算,得到的结果就只能是一个近似值了
特殊2:
可以使用+对字符串进行组拼,任何类型和字符串相加都会把数据转换成字符串,在进行组拼
a+b+"Hello"
"Hello"+a+b
特殊3:
使用字符做算数运算的时候,会自动把字符转换成对应的数字,然后进行数学运算
public class MathOperator{
public static void main(String[] args){
int a = 10;
int b = 3;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a*1.0/b);
System.out.println(a%b);//取得除法运算的余数
System.out.println(5.3-4.2);
System.out.println(0.08f+0.01f);
System.out.println(6.9*7);
System.out.println(7.6%2.0);
System.out.println("Hello"+"World");
System.out.println(34+"World");
System.out.println(34+"");
System.out.println(34+""+34);
System.out.println(""+34+34);
System.out.println(""+(34+34));
System.out.println(34+34+"");
System.out.println(34+34);
System.out.println(34+"34");
System.out.println(34+'a');
}
}
算数运算符(可以对常量和变量进行操作):
规则:操作数1 运算符 操作符2
int b = a + c;
+
可以对整数和浮点数做加法操作
-
可以对整数和浮点数做减法操作
*
可以对整数和浮点数做乘法操作
/
可以对整数和浮点数做除法操作
(两个整数相除得到的还是整数 = 略去小数部分 )
如果想要得到小数,需要将其中一个转成浮点数
%
可以对整数和浮点数做求余操作
public class MathOperator{
public static void main(String[] args){
int a = 10;
int b = 3;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a*1.0/b);
System.out.println(a%b);//取得除法运算的余数
}
}
变量注意事项:
作用域(有效范围):定义在哪个大括号内有效。不能同名在同一个作用域里面
在使用之前初始化
一行可以定义多个变量,两种写法
一行多条语句
一行一条语句
常量:
在运行期间一直不会改变的量成为常量!
一、字面值常量
二、自定义常量
自定义常量(一般常量名称都全部大写)
final 数据类型 常量名称 = 值
定义long或者float类型的时候要加上l(L)和f(F)
定义byte 或者 short的时候要保证给的值在类型范围内
char是否可以存储汉字
可以的,因为char占有两个字节,每个汉字也是占用两个字节的
练练练
2.B D G H
计算机使用的是二进制语言,由电子元器件组成的硬件系统。
B=byte b=bit
bit 位 : 0或1
byte = 8bit 字节:
kb = kbyte = 1024 byte
mb = MB = mbyte =k kbyte = k kb = 1024kb
gb = GB = gbyte = K MB = 1024MB
T = 1024 GB
进制:是一种表示数字的方式,默认我们平时使用的数字使用的十进制
public class LogicalOperator{
public static void main(string[] args){
int a=8.b=3,c=9;
boolean is CannotPlay = age<=17||age>=80;// ||逻辑或 或者 or
System.out.println(isCannotPlay);//true
System.out.println( a>b && a>c);//T&&F
System.out.println( a>b && a<c);//T&&T
System.out.println( a<b && a>c);//F&&F
System.out.println( a<b && a<c);//F&&T
System.out.println( a>b || a>c);
System.out.println( a>b || a>c);
System.out.println( a>b || a>c);
System.out.println( a>b || a>c);
}
}
public class LogincaOperator {
public sttatic void main(Sting[] args){
int age = 80;
boolean isAdult = age>=18;
boolean isZhong = age>=25 &&age<=35;//&&与
System.out.println(isAdult);
System.out.println(isZhong);
}
}
//boolean isZhong =25<=age<=35;//
long常量后面加上 L 或者 l
float变量后面加上f 或者 F
long 和 float不能自动转换