位运算符
来源:互联网 发布:三菱fx2n 4da编程实例 编辑:程序博客网 时间:2024/06/16 17:40
一、&:按位与,俩个都是1才为1。
|:按位或,只要有一个是1就是1。
^:异或,俩数不同位1,一个数和另一个数异或俩次还是它自己(一个数和它自身异或等于0,一个数和0异或等于它自己),多应用于加密解密。
例:int a=10;
int b=6;
a=a^b; //a=(a^b),
b=a^b; //b=a^b^b=10^6^6=10
a=a^b; //a=a^b^b=10^6^10=6
System.out.println(a);
System.out.println(b);
输出a=6,b=10
~:按位取反:0变成1,1变成0。
>>:右移,公式 a/2^n(n是右移的位数),正数右移,最高位补0,最小值0;负数右移,最高位补1,最小值-1。右移时,余数不可以是负数。右移周期0--31。
<<:左移,公式a*2^n(n是左移的位数),左移后面补0,不论正负数最后 都移成0,左移周期0--31。
>>> 无符号右移:负数右移一位都变成正数,最高位补0。
二、负数的二进制等于正数取反加一,-a=~a+1 -a+(-1)=~a。
三、指令:i++先赋值=0, 再加一,再赋值=0。
1.class BitDemo{
public static void main(String[] args){
int i=0;
int c=i++;
System.out.println(i);
System.out.println(c);
// 将0放到栈顶
// istore_1 将栈顶的元素赋值给第二个局部变量 i=0;
// iload_1 将第二个局部变量的值放到栈顶 0
// iinc 1,1 i=1;
// istore_2 将栈顶的元素赋值给第三个局部变量c=0;
// System.out.println(iload_1); i=1;
// iload_1 第二个局部变量
//System.out.println(iload_2);
// iload_2
}
}
2.class BitDemo10{
public static void main(String[] args){
// 第一个局部变量是args
//show();
int i=0;
i=i++;
System.out.println(i);
//iconst_0 将0放到栈顶
//istore_1 将int值存到第二个局部变量中 i=0;
// iload_1 将第二个局部变量的值放到栈顶 0
// iinc i=1;
//istore_1 将栈顶的元素给第二个局部变量i=0;
}
}
- 位运算符和位运算
- 位运算符和位运算
- 位运算符和位运算
- 位运算符和位运算
- 位运算符和位运算
- 位运算符和位运算
- 位运算符和位运算
- 位运算符与位运算
- sqlite位运算,sql位运算符
- 位运算符和位运算
- 位运算符和位运算
- 位运算、移位运算符
- Java位运算符
- 说说位运算符
- 位运算符
- Java 位运算符
- Java 位运算符
- Java 位运算符
- linux服务器的日志管理
- QT中的定时器使用
- react-native 定时器
- HTML:用递归的方法计算1+2+3+4...+10
- Java设计模式(二):工厂方法模式
- 位运算符
- 运算符
- 关于安装python3.x 及常用安装包,如wheel numpy scripy lxml openSSl Scrapy。
- java 基础-集合
- 0023_Merge k Sorted Lists
- 关于MVC和DAO设计模式
- 【死磕Java并发】-----J.U.C之ConcurrentHashMap红黑树转换分析
- Isolation Forest算法实现详解
- 基础数据结构01:链表