找回密码
 会员注册
查看: 19|回复: 0

一步一步了解Java系列:了解Java与C语言的运算符的“大同小异”

[复制链接]

2万

主题

0

回帖

6万

积分

超级版主

积分
69864
发表于 2024-9-10 16:38:37 | 显示全部楼层 |阅读模式
看到这句话的时候证明:此刻你我都在努力~                  加油陌生人~个人主页: GuGuStudy                           ​​专栏:一步一步了解Java喜欢的一句话: 常常会回顾努力的自己,所以要为自己的努力留下足迹。    如果喜欢能否点个赞支持一下,谢谢啦!                                                               作者:小闭目录一、算术运算符二、赋值运算符(增量,自增运算符)三、关系运算符四、逻辑运算符五、位运算符六、移位操作符运算符的作用在 Java 中,运算符具有以下主要作用:计算机语言最基本的作用就是进行数学运算 1. 执行运算:如算术运算符(+、-、*、/等)用于进行数学计算。2. 比较操作:比较运算符(如>、=、=,其计算结果是true或者false。关系运算符与数学的比较一模一样。3.1与C语言不同的是,他们的结果并不是1和0,Java中不能用0和1表示事件的真假。其返回的只有true或者false。四、逻辑运算符逻辑运算符主要有三个:&,||,!,运算结果都是boolean类型。4.1&运算符 “一个为假则结果为假”表达式1                      表达式2                    结果真                         真                                    真真                                                假                         假假                         真                                                假假                                                假                         假 4.2 ||操作符“一个为真则结果为真”表达式1                      表达式2                    结果真                         真                                    真真                                                假                         真假                         真                                                真假                                                假                         假4.3  !逻辑非即把真(true)变为假(false),把假(false变为真(true)。4.4短路求值对于&,如果左侧表达式值为false,则表达式结果一定是false,无需计算右侧表达式.对于||,如果左侧表达式值为true,则表达式结果一定是true,无需计算右侧表达式.&和|如果表达式结果为boolean时,也表示逻辑运算.但与&||相比,它们不支持短路求值如下代码:System.out.println(18>20&10/0==0);//打印falseSystem.out.println(18>,>>> ,都是二元运算符,且都是按照二进制比特位来运算的如:inta=10;System.out.println(a<< 1);// 运行结果20  6.1  <<左移操作符 左移规则:最左侧位不要了, 最右侧补 0. int a = 10;System.out.println( a << 1);// 运行结果20 就像上面的代码,我们先把int a的补码列出来 int a =00000000000000000000000000001010   左移规则:最左侧位不要了, 最右侧补 0. 经过左移1位后得到:00000000000000000000000000010100  即十进制的20 6.2  >>右移操作符 右移规则:最右侧位不要了,最左侧补符号位(正数补0,负数补1)inta=10;System.out.println(a>>1);//运行结果5 老样子列出inta的补码:inta=00000000000000000000000000001010  右移规则:最右侧位不要了,最左侧补符号位(正数补0,负数补1)然后右移一位得到:00000000000000000000000000000101即十进制的5.6.3无符号右移无符号右移:最右侧位不要了,最左侧补0 与普通右移不同的就是无符号右移后得到的肯定是一个正数。即使是负数右移publicstaticvoidmain(String[]args){inta=-10;System.out.println(a>>>1);//运行结果20} 列出-10的补码:原码:inta=10000000000000000000000000001010  反码:     11111111111111111111111111111110101补码:      11111111111111111111111111111110110无符号右移规则:最右侧位不要了,最左侧补0然后右移一位得到:01111111111111111111111111111111011  转化为原码打印即:上面的结果。 七、三目运算符其形式为:表达式1? 表达式2:表达式3当表达式1的值为true时,整个表达式的值为表达式2的值;当表达式1的值为false时,整个表达式的值为表达式3的值.注意:1.表达式2和表达式3的结果要是同类型的,除非能发生类型隐式类型转换publicstaticvoidmain(String[]args){inta=10;doubleb=12.6;intc1;doublec2;c2=a>b?a:b;c1=a>b?a:b;}如图:c2是可以发生转换的,所以可以使用。c1则不行。  2.表达式不能单独存在,其产生的结果必须要被使用文章已到末尾,喜欢的话点个赞吧。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-7 06:43 , Processed in 0.429309 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表