首页 > 其他分享 >运算符

运算符

时间:2024-08-01 18:52:15浏览次数:11  
标签:操作数 ++ 运算符 用于 true 布尔

运算符

目录


运算符类型

  1. 算术运算符:用于基本的数学运算。
    • 加(+
    • 减(-
    • 乘(*
    • 除(/
    • 模(%):求余数
    • 自增(++):变量值加一
    • 自减(--):变量值减一
  2. 关系运算符:用于比较两个值,并根据比较结果返回布尔值 truefalse
    • 大于(>
    • 小于(<
    • 大于等于(>=
    • 小于等于(<=
    • 等于(==
    • 不等于(!=
  3. 逻辑运算符:用于布尔逻辑运算。
    • 逻辑与(&&):两个条件都为 true 时结果才为 true
    • 逻辑或(||):两个条件中至少有一个为 true 结果就为 true
    • 逻辑非(!):反转布尔值,truefalsefalsetrue
  4. 位运算符:直接对操作数的位执行操作。
    • 位与(&
    • 位或(|
    • 位异或(^
    • 位非(~):反转所有位
    • 位左移(<<):向左移动位
    • 位右移(>>):向右移动位,有符号
    • 位无符号右移(>>>):向右移动位,无符号
  5. 赋值运算符:用于给变量赋值。
    • 简单赋值(=
    • 加等于(+=):加法和赋值的组合
    • 减等于(-=):减法和赋值的组合
    • 乘等于(*=):乘法和赋值的组合
    • 除等于(/=):除法和赋值的组合
    • 模等于(%=):求余数和赋值的组合
    • 位与等于(&=
    • 位或等于(|=
    • 位异或等于(^=
    • 位左移等于(<<=
    • 位右移等于(>>=
    • 位无符号右移等于(>>>=
  6. 条件运算符(三元运算符):基于条件执行操作,是 ?: 的形式。
    • 格式:condition ? value_if_true : value_if_false
  7. 成员访问运算符:用于访问对象的成员(方法和字段)。
    • .:访问类或对象的成员
  8. 数组长度运算符:用于获取数组的长度。
    • .length
  9. 类型转换运算符:用于显式类型转换。
    • (类型):将括号内的表达式转换为指定的类型
  10. 实例检查运算符:用于检查对象是否是特定类的实例。
    • instanceof
  11. 字符串连接运算符:用于连接字符串。
    • +:当用于字符串和非字符串类型时,会将非字符串类型转换为字符串,然后进行连接。

i++与++i的区别

i++(后缀递增运算符):

  • 行为i++ 首先返回变量 i 的原始值,然后将 i 的值增加 1。
  • 使用场景:当你需要在表达式中使用变量的原始值,并且之后可以增加变量的值时。

++i(前缀递增运算符):

  • 行为++i 首先将变量 i 的值增加 1,然后返回新的值。
  • 使用场景:当你需要在表达式中使用变量的新值时。

代码示例:

int i = 5;
int a = i++; // a = 5, i = 6
int b = ++i; // i = 7, b = 7

System.out.println("a = " + a + ", i = " + i); // 输出 a = 5, i = 7
System.out.println("b = " + b + ", i = " + i); // 输出 b = 7, i = 7

区别总结:

  • 返回值i++ 返回递增前的值,而 ++i 返回递增后的值。
  • 表达式求值:在表达式中,i++ 先使用原始值,再进行递增;++i 先进行递增,再使用新值。

&与&&的区别

  1. 逻辑与运算符 &
    • & 是一个二元运算符,用于按位与(bitwise AND)操作。当它用于整数或字符等基本数据类型时,它会对两个数值的二进制位进行逐位与操作。
    • 它也可以用于布尔逻辑运算,但通常不推荐,因为 & 在布尔上下文中可能会产生副作用,并且容易与位运算混淆。
  2. 逻辑与运算符 &&
    • && 是一个短路与运算符,用于布尔逻辑运算。它用于连接两个布尔表达式,只有当两个操作数都为 true 时,结果才为 true
    • && 具有短路特性,即如果第一个操作数为 false,那么整个表达式的结果已经确定为 false,因此第二个操作数不会被求值。这可以防止不必要的计算和潜在的异常。

区别总结

  • 短路与非短路&& 具有短路特性,而 & 不具有。
  • 使用场景& 通常用于位运算,&& 用于布尔逻辑。
  • 副作用:使用 & 进行布尔逻辑运算时,如果第一个操作数为 false,第二个操作数总是被求值,可能会产生副作用或异常。

|与||的区别

  1. 逻辑或运算符 ||
    • || 是一个二元运算符,用于布尔逻辑运算。
    • 它用于连接两个布尔表达式,如果至少有一个操作数为 true,则整个表达式的结果为 true
    • || 具有短路特性,即如果第一个操作数为 true,那么整个表达式的结果已经确定为 true,因此第二个操作数不会被求值。这可以防止不必要的计算和潜在的异常。
  2. 按位或运算符 |
    • | 是一个二元运算符,用于按位或(bitwise OR)操作。
    • 当它用于整数或字符等基本数据类型时,它会对两个数值的二进制位进行逐位或操作。
    • 它也可以用于布尔逻辑运算,但通常不推荐,因为 | 在布尔上下文中可能会产生副作用,并且容易与位运算混淆。

区别总结:

  • 短路与非短路|| 具有短路特性,而 | 不具有。
  • 使用场景|| 用于布尔逻辑运算,| 通常用于位运算。
  • 副作用:使用 | 进行布尔逻辑运算时,如果第一个操作数为 true,第二个操作数总是被求值,可能会产生副作用或异常。

>与>>的区别

  1. 大于运算符 >
    • > 是一个关系运算符,用于比较两个数值或对象。
    • 它返回一个布尔值(truefalse),表示左侧的值是否大于右侧的值。
    • 这个运算符可以用于整数、浮点数、字符以及实现了 Comparable 接口的对象。
  2. 右移位运算符 >>
    • >> 是一个按位运算符,用于将操作数的各个位向右移动指定的位数。
    • 它是二元运算符,需要两个操作数:一个是要被移位的数值,另一个是指定移动位数的数值。
    • 右移位运算符有两种变体:带符号右移(>>)和无符号右移(>>>)。

区别总结

  • 操作类型> 用于比较操作,返回布尔值;>> 用于按位操作,返回数值。
  • 用途> 用于比较两个值的大小;>> 用于按位移动数值的位。
  • 结果> 的结果是一个布尔值;>> 的结果是一个数值。

标签:操作数,++,运算符,用于,true,布尔
From: https://www.cnblogs.com/jmy3/p/18337263

相关文章

  • C++11 中的 python 海象运算符 (:=) 等效吗?
    最近我在Python中经常使用:=运算符,这样:ifmy_object:=SomeClass.function_that_returns_object():#dosomethingwiththisobjectifitexistsprint(my_object.some_attribute)问题有没有办法在c++11中做到这一点而不使用stdlib?例如......
  • Java中的运算符
    运算符目录运算符运算符的分类算术运算符关系运算符位运算符逻辑运算符短路逻辑运算符赋值运算符条件运算符(?:)instanceof运算符Java运算符优先级运算符的分类计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。我们可以把运......
  • day11 Java基础——基本运算符
    day11Java基础——基本运算符小技巧:CTRL+D复制当前行到下一行例1:packageoperator;publicclassDemo01{publicstaticvoidmain(String[]args){//二元运算符inta=10;intb=20;intc=25;intd=25;......
  • 无法使用任何运算符将具有简单过滤条件的列转换为布尔值
    我正在尝试从python中的dict结构动态形成过滤条件,这是一个非常简单的条件,会给出以下错误:Finalconstructedfiltercondition:Column<'(CompanyCodeIN(1930,1931))'>Typeoffinal_condition:<class'pyspark.sql.column.Column'>PySparkValueError:[CANNOT_CON......
  • C语言:运算符优先级
    由上到下,优先级依次递减运算符结合性()[] -> .从左至右!~++---(type)*&sizeof从右至左*/%从左至右+-从左至右<<>>从左至右<<=>>=从左至右==!=从左至右&从左至右^从左至右|从左至右&&从左至右||从左至右?:从右至左assignments从右至左,从左至右......
  • c语言(运算符,流程)
    运算符位运算符说明:按位(bit)来进行运算操作的运算符。语法:~&|^<<>>**~:**按位取反说明:单目运算符,数据的每一个bit位取反,也就是二进制数位上的1变0,0变1。举例:unsignedcharret=~0x05;//00000101-->11111010printf("%d\n",~5);//-6**&......
  • Java基础10:拓展运算符、字符串连接符、三元运算符
    扩展运算符publicstaticvoidmain(String[]args){ inta=10; intb=20; a+=b;//a=a+b System.out.println(a+":"+b);}字符串连接符"+"运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。//字符串......
  • Java基础09:逻辑运算符、位运算符
    逻辑运算符逻辑与:&&和&,逻辑或:||和|,逻辑非:!。publicstaticvoidmain(String[]args){ booleana=true; booleanb=false; System.out.println("a&&b="+(a&&b));//false System.out.println("a||b="+(a||b));......
  • Java基础07:基本运算符
    运算符运算符operatorJava语言支持如下运算符:算术运算符:+,-,*,/,%,++,--赋值运算符=关系运算符:>,<,>=,<=,==,!=instanceof逻辑运算符:&&,||,!位运算符:&,|,^,~,>>,<<,>>>(了解!!!)条件运算符?:扩展赋值运算符:+=,-=,*=,/=二元运算符publicstaticvoidmain(Str......
  • Java基础08:自增自减运算符,初识Math类
    一元运算符自增(++)自减(--)运算符是一种特殊的算术运算符,在算术运算符中需要两个操作数来进行运算,而自增自减运算符是一个操作数,分为前缀和后缀两种。publicstaticvoidmain(String[]args){ inta=3; intb=a++;//执行完后,b=3。先给b赋值,再自增。 intc=++a;//执......