《JAVA---day03---运算符》
/*【位运算符】
运算符: 运算 范例 说明 <<: 左移 3<<2=12--->3*2*2=12
>>: 右移 3>>2=1---->3/2=1
>>>: 无符号右移 3>>>2=1--->3/2=1
&: 与运算 6 & 3=2
|: 或运算 6 | 3=7
^: 异或运算 6^3=5
~: 反码 ~6=-7 */
//左移:左移就是乘以2的次幂运算。移几位就是几次幂。
//左移的用处:比如要在计算机中做3*4的运算,
//在计算机中是用二进制相乘的011*100,但是
//现在可以用位运算的方式(左移来运算),
//即把3左移2位就得到结果了,这样的运算速度很快,
//其弊端是只能操作2的倍数,在开发过程中如果要操作2
//的倍数或者2的次幂时,可用位运算来实现。 //右移:右移就是除以2的次幂运算。移几位就是几次幂。
/*
右移时,原最高位是什么,空位就补什么(保持原来的符号性)。
*/ //无符号右移:不用于做除法运算。
/*
无论原最高位是什么,空位都补0.
用处在于:获取二进制中某一段的值 比如:
一个二进制为:00000000 00111100 00000000 00110110
如果三位三位的获取其值(一次右移无符号三位),第一次
右移三位取得的是(110:结果为6),然后去掉这三位,则
下一个三位变成了最低的三位,再获取这个三位……最后得到的
结果是这个二进制对应的八进制数。(获取四位,就是二进制
对应的十六进制) 总结就是:在进行关于2的运算时,考虑左移和右移运算。
在进行二进制的位操作是,要用到无符号右移。
*/ //&运算:
/*
在二进制中在&运算过程中,只有全为1时,结果才为1,
否则为0. 用处是:在获取某一个二进制的某几位的时候比如:
一个二进制为00101011,要获取最后三位是可以用三个1和
最后三个二进制为相与
一句话:用来获取二进制中的有效位1
00101011
00000111
-----------
00000011------最后三位为二进制位
当要获取第二个三位时,可以先把此二进制无符号右移三位
在和00000111相与即可
*/ //|:运算
/*
6|3=
110
|001
----
111 --->7(十进制)
*/ //^:运算
/*
6^3=5
110
^011
----
101 --->5
^011
----
110 --->6
即6^3^3 = 6;
一个数异或另一个数,结果还是原数。(用于加密方面)
*/ //~:取反运算:
/*
~6=-7:计算如下:
6--->00000110 取反得:--->11111001
因为在计算机中是用补码形式存放的。所以要把11111001
看成一段补码,现在把这个补码转换为原码(先变为反码:
减1就行得--->11111000,再变为原码,最高位是符号位,不变
其他为按位取反得--->10000111再转化为十进制为-7)
比如6取反再加1得-6
*/ //位运算符的练习: /*
1,如何最有效率的计算2*8
通过左移来运算:2<<<3--->2*8 = 16;
//System.out.println(2<<3);--->结果是16
2, 对两个整数变量的值进行互换(不需要第三方变量)
int a = 3,b = 7; //通过第三方变量的方法如下:
int temp;
temp = a;
a = b;
b = temp; //(不经过第三方变量)通过和的形式。有个弊端,两个数据较大,可能会超出int范围。
//这个方法不太好
a = a+b; //a = 3+7;
b = a-b; //b = 3+7-7; b = 3;
a = a=b; //a = 3+7-3; a = 7; //(不经过第三方变量)通过位运算来解决。
a = a^b; //a = 3^7;
b = a^b; //b = 3^7^7; --->b = 3;
a = a^b; //a = 3^7^3; --->a = 7;
*/ //三元运算符:格式:(条件表达式)?表达式1:表达式2;
//int x = 2,y;
//y = x>1?100:200; //需求:有三个数,想知道最大的是哪个?
/*
int a = 2,b=3,c =4,max;
if(a>b)
max = a;
if(max<b)
max = b;
System.out.println("max="+max);
*/ class OperateDemo1
{
public static void main(String[] args)
{
int a=3,b=40,c=5;
int max;
if(a>b)
max = a;
else
max = b;
if(max<c)
max = c;
else
max = b;
System.out.println("max="+max); }
}
《JAVA---day03---运算符》的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- c#之有参和无参构造函数,扩展方法
例如在程序中创建 Parent类和Test类,在Test有三个构造函数,parent类继承Test类,那么我们可以在Test类自身中添加 扩展 方法吗? 答案:是不可以的.因为扩展方法必须是静态的,且 ...
- 命令模式(head first 设计模式5)
一.命令模式定义 命令大家都不会陌生,那么在开始命令模式之前,可以想象一下生活中的命令模式的特点: 如老板命令你完成一个OA项目是一个命令,接着看看其特点: 1.在上面的命令中,命令的执行者肯定是聪明 ...
- HDU 6129 Just do it(杨辉三角)
http://acm.hdu.edu.cn/showproblem.php?pid=6129 题意: 给出数组a,并且bi=a1^a2^a3...^ai,并且现在会重复m次,求出最后的b数组. 思路: ...
- IEnumerable与IEnumerator
IEnumerable接口 IEnumerable接口:实现该接口的类,表明该类下有可以枚举的元素 public interface IEnumerable { //返回一个实现了IEnumerato ...
- ORA-01940:无法删除当前已连接的用户
当时时间比较着急,直接采取了釜底抽薪的办法——拔网线,这招很管用,再次执行drop user就成功了.考虑到以后不一定所有场合都允许你采取这种简单粗暴的办法,就在虚拟机上重现了这个报错,寻求一种较为温 ...
- html生成缩略图来预览解决方案
html生成缩略图来预览解决方案 一.总结 一句话总结:先将html转化为canvas,然后将canvas生成图片ajax上传到服务器,就可以了 html 转化 canvas 图片 上传 html2c ...
- YII第三步,日志开启
YII第三步,日志开启 index.php入口文件配置: defined('YII_DEBUG') or define('YII_DEBUG',true); cofig/main.php 'prelo ...
- Confluence 6 获得 Active Directory 服务器证书
上面的步骤说明了如何在你的 Microsoft Active Directory服务器上安装 certification authority (CA).这一步,你需要为你的 Microsoft Act ...
- Confluence 6 安装 Active Directory 证书服务器
如果证书服务器已经安装了的话,跳过这一步骤,直接进入下一步.下面步骤中的屏幕截图是从 Windows 2008 服务器版上安装的截图,针对 2000 和 2003 安装过程是一样的. 作为系统管理员登 ...
- 百度定位SDK
按照官网要求配置SHA1和包名生成ak秘钥 生成秘钥命令: keytool -list -v -keystore debug.keystore 密码:原始密码为android 添加libs文件夹并在g ...