运算符

Posted lovemeifyoudare

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运算符相关的知识,希望对你有一定的参考价值。

1. 变量 (可以变化的数据)  常量(一旦被赋值不能被改变)

1. 使用步骤

a. 在内存中开辟一个空间 

数据类型 自定义的名字(变量名、标识符); 

double num; 

b. 采用赋值运算符对变量进行赋值 

变量名=数据;

num=23.5;

c. 改变变量的值

num=15;

d. 1/2可以二合一

double num1=23.5;

2. 注意的问题

a. 代码是从上往下运行的(一定要注意变量的使用位置)

b. 在同一个作用域内不能出现同名的两个变量名  

c. 变量在使用时,变量名不能放在双引号内

2. 数据类型

1. 理解

数据:性别、名字、年龄、工资、成绩、照片、视频、音频 

数据类型:字符、字符串、数字、文件

2. 数据类的分类

a. 基本数据类型 4类8个

整型(整数): 5  10   167   20000     4个

byte   字节   1个字节8位(bit)    -128 ~ 127   -2^7 ~ 2^7-1

short    2个字节-2^15 ~ 2^15-1

int  4个字节-2^31 ~ 2^31-1    * 

long  8个字节-2^63 ~ 2^63-1

浮点型(小数): 1.5 1.3  20.6  10000.0   2个     

float          4个字节   单精度      在赋值时需要在数据的后面添加f或F

double   8个字节   双精度

字符型: 单个字符   这个字符必须被单引号包围   可以进行运算(每个字符都对应一个数值)

char  可变字节

布尔型: 主要存储的是   判断题的答案   对(成立、真) true   错(不成立、假) false

boolean    应用在条件结构和循环结构中

 

b. 引用数据类型  

字符串:可以是0-n个字符   必须被双引号包围

String 

c. 常用的数据类型

整型:int

浮点型:double

字符型:char

布尔型:boolean

字符串:String

3.  数据类型的转换 

a. 自动转化 小-大

byte-->short-->int-->long-->float-->double

char-->int

b. 强制转化 大-小

语法:   较小的数据类型 变量名=(较小的数据类型)较大的变量;

案例:

int num2=100;

byte s=(byte)num2;

 

double d1=13.5;

int num3=(int)d1;

4. 标识符  

类名 

a. 字母+数字

b. 数字不能作为开头

c. 不能使用java中的关键字和保留字

d. 类名首字母大写(规范)

变量名

a. 字母+数字+符号(_和$)

b. 数字不能作为开头

c. 不能使用java中的关键字和保留字

d. 没有长度限制

e. 第一个单词全小写,从第二个单词开始首字母大写  (规范:驼峰式命名法)

5. 运算符

 

此类用于演示   运算符

1. 赋值运算符

=   

2. 算术运算符

+ - * / %  ++  --

 

+  加法   连接符

连接符:只要有一段为字符串的话那么+为连接符

-

*

 

/  整数运算中    得到的是商数

   一旦有浮点型数据参与运算  得到的就是准确的答案

 

%  整数运算中    得到的是余数

 

++  自身+1

 

--  自身-1

 

3. 赋值运算符补充

+= -= *= /= %=

7. 关系运算符(返回的结果是布尔值)

1. > >= < <= ==  != 

2. 应用在什么地方?条件结构、循环结构

3. 关于String类型的主句判断是否相等时

String类型的数据有时可以用==判断,有时不可以 (到内存分布时在解释为什么)

a.equals(b);//任何情况下的字符串都可以判断是否相等  

8. 逻辑运算符  

1. 并且   或者   非   

2. 

并且    && 短路与   &  逻辑与   功能:只有两个条件都为真,总体才为真,否则总体为假

或者    || 短路或|  逻辑或功能:只有两个条件都为假,总体才为假,否则总体为真

非(取反) !   功能:之前是true取反之后变为false,之前是false取反之后变为true  

9. 三元运算符语法

布尔值?值1:值2;    判断?前面的布尔值是true还是false,如果是true的话就取值1,如果是false就取值2

1. 变量 (可以变化的数据)  常量(一旦被赋值不能被改变)此类用于演示  变量 1. 使用步骤a. 在内存中开辟一个空间 数据类型 自定义的名字(变量名、标识符); double num; b. 采用赋值运算符对变量进行赋值 变量名=数据;num=23.5;c. 改变变量的值num=15;d. 1/2可以二合一double num1=23.5;2. 注意的问题a. 代码是从上往下运行的(一定要注意变量的使用位置)b. 在同一个作用域内不能出现同名的两个变量名  c. 变量在使用时,变量名不能放在双引号内2. 数据类型1. 理解数据:性别、名字、年龄、工资、成绩、照片、视频、音频 数据类型:字符、字符串、数字、文件2. 数据类的分类a. 基本数据类型 4类8个整型(整数): 5  10   167   20000     4个byte   字节   1个字节8位(bit)    -128 ~ 127   -2^7 ~ 2^7-1short    2个字节-2^15 ~ 2^15-1int  4个字节-2^31 ~ 2^31-1    * long  8个字节-2^63 ~ 2^63-1浮点型(小数): 1.5 1.3  20.6  10000.0   2个     float          4个字节   单精度      在赋值时需要在数据的后面添加f或Fdouble   8个字节   双精度字符型: 单个字符   这个字符必须被单引号包围   可以进行运算(每个字符都对应一个数值)char  可变字节布尔型: 主要存储的是   判断题的答案   对(成立、真) true   错(不成立、假) falseboolean    应用在条件结构和循环结构中b. 引用数据类型  字符串:可以是0-n个字符   必须被双引号包围String c. 常用的数据类型整型:int浮点型:double字符型:char布尔型:boolean字符串:String3.  数据类型的转换 a. 自动转化 小-大byte-->short-->int-->long-->float-->doublechar-->intb. 强制转化 大-小语法:   较小的数据类型 变量名=(较小的数据类型)较大的变量;案例:int num2=100;byte s=(byte)num2;double d1=13.5;int num3=(int)d1;4. 标识符  类名 a. 字母+数字b. 数字不能作为开头c. 不能使用java中的关键字和保留字d. 类名首字母大写(规范)变量名a. 字母+数字+符号(_和$)b. 数字不能作为开头c. 不能使用java中的关键字和保留字d. 没有长度限制e. 第一个单词全小写,从第二个单词开始首字母大写  (规范:驼峰式命名法)5. 运算符此类用于演示   运算符1. 赋值运算符=   2. 算术运算符+ - * / %  ++  --+  加法   连接符连接符:只要有一段为字符串的话那么+为连接符-*/  整数运算中    得到的是商数   一旦有浮点型数据参与运算  得到的就是准确的答案%  整数运算中    得到的是余数++  自身+1--  自身-13. 赋值运算符补充+= -= *= /= %=6. 手动输入此类用于演示  手动输入a. 创建手动输入的工具Scanner input=new Scanner(System.in);b. 导包  位置:类的上方代码:import java.util.Scanner;c. 创建输入入口int num=input.nextInt(); int型数据的输入入口double d1=input.nextDouble();  double型数据的输入入口String name=input.next(); 字符串的输入入口7. 关系运算符(返回的结果是布尔值)1. > >= < <= ==  != 2. 应用在什么地方?条件结构、循环结构3. 关于String类型的主句判断是否相等时String类型的数据有时可以用==判断,有时不可以 (到内存分布时在解释为什么)a.equals(b);//任何情况下的字符串都可以判断是否相等  8. 逻辑运算符  1. 并且   或者   非   2. 并且    && 短路与   &  逻辑与   功能:只有两个条件都为真,总体才为真,否则总体为假或者    || 短路或|  逻辑或功能:只有两个条件都为假,总体才为假,否则总体为真非(取反) !   功能:之前是true取反之后变为false,之前是false取反之后变为true  9. 三元运算符语法布尔值?值1:值2;    判断?前面的布尔值是true还是false,如果是true的话就取值1,如果是false就取值210. 位运算符  二进制和十进制之间的转换a. 十进制-->二进制 除2的操作,直到除到0为止,获得的余数倒序就是十进制对应的二进制byte     1一个字节    8位(二进制的位数)short    2  16int 4      32long 8位  64byte b=2;2 -> 10 3 -> 1115 -> 1111      13 -> 1101b. 二进制-->十进制  1011  -->  11   2^3*1 + 2^2*0 + 2^1*1 + 2^0*18+0+2+111001  -->  25  2^4*1 + 2^3*1 + 2^2*0 + 2^1*0 + 2^0*116+8+0+0+1   2532 16 8 4 2 1最高位是符号位   0正数   1负数原码:10001111  反码:11110000 原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。例如,用8位二进制表示一个数,+11的原码为00001011,-11的原码就是10001011。
反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码(原码逐位取反)的末位加1。
3. 位运算符 <<移位后,空位补0,被移除的高位丢弃,空缺位补0。  M << n   其实可以这么算   M << n  = M * 2^n>>被移位的二进制最高位是0,右移后,空缺位补0;    M >> n  = M / 2^n  正数的原码  反码  补码一致最高位是1,空缺位补1。-15 1 0 0 0 1 1 1 1反码 1 1 1 1 0 0 0 0补码 1 1 1 1 0 0 0 1右移3位 1 1 1 1 1 1 1 0
补码     1 1 1 1 1 1 0 1反码  1 0 0 0 0 0 1 0>>2得出   -2>>>被移位二进制最高位无论是0或者是1,空缺位都用0补。 若是正数 其实可以这么算   M << n  = M * 2^n   负数则变成好大的正数&二进制位进行&运算,只有1&1时结果是1,否则是0;|二进制位进行 | 运算,只有0 | 0时结果是0,否则是1;^相同二进制位进行 ^ 运算,结果是0;1^1=0 , 0^0=0不相同二进制位 ^ 运算结果是1。1^0=1 , 0^1=1~正数取反,各二进制码按补码(此时为正整数)各位取反(变成负整数),再补码  (负整数补码原码符号位不变,先将原码减去1,最后数值位各位取反)~150 0 0 0 1 1 1 1反码 ==0 0 0 0 1 1 1 1 补码 ==0 0 0 0 1 1 1 1取反 ~1 1 1 1 0 0 0 0----------------------------------补码 -11 1 1 0 1 1 1 1反码 ~1 0 0 1 0 0 0 0原码-2^4 = -16求负整数的补码,原码符号位不变,先将原码减去1,最后数值位各位取反。(但由于2进制的特殊性,通常先使数值位各位取反,最后整个数加1。)如下  结果一样~150 0 0 0 1 1 1 1反码 ==0 0 0 0 1 1 1 1 补码 ==0 0 0 0 1 1 1 1取反 ~1 1 1 1 0 0 0 0----------------------------------数值位取反1 0 0 0 1 1 1 1+1 1 0 0 1 0 0 0 0    == -16负数取反,各二进制码按补码各位取反,再补码(但是正数的补码与其原码相同)-34 1 0 1 0 0 0 1 0反码 1 1 0 1 1 1 0 1补码 1 1 0 1 1 1 1 0取反     0 0 1 0 0 0 0 1  ==33

以上是关于运算符的主要内容,如果未能解决你的问题,请参考以下文章

Python算术运算符赋值运算符关系运算符逻辑运算符条件运算符(三元运算符)

JAVA语言运算符(算数运算符赋值运算符比较运算符逻辑运算符三元运算)

python的运算符都有哪些

Java_运算符

js运算符(运算符的结合性)

R语言 运算符