java特殊运算符
按位运算符
定义:按位运算符是来操作整数基本数据类型中的单个“比特”(bit),即二进制位,位运算符会对两个参数中对应的位执行布尔代数运算,并最终生成一个结果。
分类:与(&)、或(|)、异或(^)、非(~)
1、与运算
定义:都为1才得到1,其它情况得到0
如:5&4
二进制:0101 & 0100 = 0100 0100对应十进制4
2、或运算
定义:两个数有一个为1,则得到1
如:5|4
二进制:0101 & 0100 = 0101 0101对应十进制5
3、异或运算
定义:两个数不同则得到1
如:5^4
二进制:0101 ^ 0100 = 0001 0001对应十进制1
4、非运算
定义:取反(需要考虑 符号位)
如:~5
二进制:~0000 0000 0000 0101 = 1111 1111 1111 1010 1111 1111 1111 1010对应十进制-6
顺便说下:符号位在最高1位,符号位为0表示正数,为1表示负数
移位运算符
1、左移运算符
定义:运算符左边数据的二进制位依次往左移动n位(n为运算符右边的十进制值),末尾(此时末尾为二进制最右边)用0补位。
说明:左移只考虑末尾位,不管正负数,都不影响符号位,因此不分有无符号位运算
如:4830 << 5 (4830的二进制位左移5位)
结果:
总结:x << y 相当于 x*2y
2、带符号右移运算符
定义:运算符左边数据的二进制位依次往右边移动n位(n为运算符右边的十进制值),末尾(此时末尾为二进制位最左边)用0或者1(正数用0,负数用1)补位。
正数
如:4830 >> 5
结果:
正数用0补位,输出时应为0000010010110(输出省略前面0)
负数
如:-4830 >> 5
结果:
总结:x << y 相当于 x/2y
3、不带符号右移运算符
定义:运算符左边数据的二进制位依次往右边移动n位(n为运算符右边的十进制值),末尾(此时末尾为二进制位最左边)用0补位。
说明:负数在此没有算数意义,因为只补0,
如:-4830 >>> 5
结果:
java特殊运算符的更多相关文章
- java移位运算符具体解释
java移位运算符不外乎就这三种:<<(左移).>>(带符号右移)和>>>(无符号右移). 1. 左移运算符 左移运算符<<使指定值的全部位都左移 ...
- JAVA的运算符和条件结构
一.JAVA的运算符. 1.赋值运算符 赋值就是把一个变量的值赋给另一个变量. 语法: 变量名=表达式 例如 n = m + 5 2.算术运算符 算术运算符是数学中常用的加.减.乘 ...
- java位移运算符3 转
https://www.cnblogs.com/winsker/p/6728672.html 移位运算符操作的对象就是二进制的位,可以单独用移位运算符来处理int型整数. 理解java移位运算符 运算 ...
- java位移运算符 转
https://blog.csdn.net/qq_36134429/article/details/78286416#commentsedit java移位运算符不外乎就这三种:<<(左移 ...
- Java 位运算符和 int 类型的实现
Java 位运算符和 int 类型的实现 其他运算符 # 算术运算符 +.-.*./.++i.i++.--i.i-- # 关系运算符 ==.!=.>.<.>=.<= # 逻辑运 ...
- 【java】运算符
Java的运算符,分为四类: 算数运算符.关系运算符.逻辑运算符.位运算符. 算数运算符(9):+ - * / % ++ -- 关系运算符(6):== != > >= ...
- java 增量运算符
//java 增量运算符 public class Test16{ public static void main(String args[]) { int x1=10; x1+=3; //x1=x1 ...
- java三元运算符详解
最近在带领实习生中遇到很多新手问与三元运算符有关的java题目,多数为代码结果题,少数为应用题.鉴于很多资料上对于java三元运算的讲解过于简单,网上的资料与题目也不是很完善,对于结果答案分析不一,故 ...
- 利用Java位运算符,完成Unsigned转换(无符号)
方案二:利用Java位运算符,完成Unsigned转换. 正常情况下,Java提供的数据类型是有符号signed类型的,可以通过位运算的方式得到它们相对应的无符号值,参见几个方法中的代码: publi ...
- java移位运算符详解
http://soft.chinabyte.com/database/195/11553695.shtml java移位运算符不外乎就这三种:<<(左移).>>(带符号右移)和 ...
随机推荐
- 08 nginx+uWSGI+django+virtualenv+supervisor发布web服务器
一.为什么要用nginx,uwsgi? 1 首先nginx 是对外的服务接口,外部浏览器通过url访问nginx, 2nginx 接收到浏览器发送过来的http请求,将包进行解析,分析url,如果是静 ...
- Altium Designer 只导出PCB元器件及标号的PDF文件的方法
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 作者:struct_mooc 博客地址:https://www.cnblogs.com/stru ...
- Eclipse中插件的运用
1. hotcode2.jar 支持java代码热部署,改了本地java代码不需要重新部署生效,可以节省开发时间,提高开发效率. 安装方法: 到help -- install new software ...
- TP-Link 路由器 如何在现有的环境中改善无线信号传输质量
http://service.tp-link.com.cn/detail_article_346.html
- 用ant打包
Eclipse 内置了 Ant . Ant 是一种类似于批处理程序的软件包,它主要繁琐的工作是编写和调试自动处理脚本(一个 XML 文件),但只要有了这个脚本,我们就可以一键完成所有的设定工作. 本节 ...
- Delphi MaskEdit 组件
- libusb读写
https://blog.csdn.net/u012247418/article/details/83684980 https://github.com/crazybaoli/libusb-test ...
- 文件操作相关函数(POSIX 标准 open,read,write,lseek,close)
POSIX标准 open函数属于Linux中系统IO,用于“打开”文件,代码打开一个文件意味着获得了这个文件的访问句柄. int fd = open(参数1,参数2,参数3): int fd = op ...
- mysql 主从 Last_IO_Errno错误代码说明
Last_IO_Errno错误代码说明: 1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败 1009:不能删除数据库文件 ...
- MyEclipse使用教程:使用工作集组织工作区
[MyEclipse CI 2019.4.0安装包下载] 工作集允许您通过过滤掉不关注的项目来组织项目视图.激活工作集时,只有分配给它的项目才会显示在项目视图中. 如果您的视图中有大量项目,这将非常有 ...