java学习笔记:移位
来源:互联网 发布:企业版域名注册通 编辑:程序博客网 时间:2024/05/24 06:17
java学习笔记:移位
右移n位:>>n,除以2的n次幂,空出来的位按原有最高位补值
无符号右移:>>>n,空出来的位用0补
异或两次为原值,可用于数据加密解密。
练习题:
1. 不用第三方变量,对两个整数变量的值进行互换。
答:方法1:
int n = 3;
int m = 8;
n = n + m;
m = n - m; // <==> m = (n + m) - m = n + (m - m) = n
n = n - m; // <==> n = n - (n - m) = (n - n) + m = m
缺点:如果n和m的值非常大,容易超出int类型的取值范围(2的32次方减1)
方法2:异或(异或两次为原值)
n = n ^ m;
m = n ^ m; // <==> m = n ^ m = (n ^ m) ^ m = n ^ (m ^ m) = n
n = n ^ m; // <==> n = n ^ m = n ^ (n ^ m) = (n ^ n) ^ m = m
阅读全文
0 0
- java学习笔记:移位
- Java 学习笔记01 移位运算符
- 【Java学习笔记】移位运算符和逻辑运算符
- Java移位运算符笔记
- C 学习笔记: 移位操作练习。
- Java 笔记-移位运算符
- Java移位
- JAVA 移位
- Java移位
- Java移位
- Java 移位
- Java中的移位操作——Java编程思想笔记
- 编程珠矶学习笔记(2)--移位旋转
- 80X86学习笔记--逻辑运算与移位指令
- 32位汇编语言学习笔记(4)--移位操作
- MATLAB学习笔记之-----数列的循环移位操作
- Java学习_06_二进制、位运算&移位运算、集合框架
- java基础学习之二进制,移位运算符
- Java 并发专题 : Timer的缺陷 用ScheduledExecutorService替代
- 【安卓基础】06 SQLiteHelper 对安卓数据库操作
- ruby02
- bzoj 2160(manacher+差分)
- hdu 2081 手机短号
- java学习笔记:移位
- MT 102 Multiple Customer Credit Transfer多客户信用转账
- 八大排序算法之-直接插入排序 java代码
- 160个crackme之004
- AsyncTask如何使用
- ruby03
- 两个字符串是变位词
- hdu 2083 简易版之最短距离
- ruby04