黑马程序员_java基础——位运算与位操作
2015-03-24 20:39
411 查看
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
对数进行位操作的方法有很多,这里主要介绍一下异或,算数左移,算数右移和逻辑右移。
1.异或运算就是按位相异为1,异或运算有一个重要的特点就是异或一个数两次就等于这个数本身,一个重要的应用就是:不用第三方变量交换两个数。如:交换整数n和m的值
n=n^m;
m=n^m;
n=n^m;
上述三条语句就可以完成n和m的交换。
2.左移位:<<,有符号的移位操作
左移操作时将运算数的二进制码整体左移指定位数,左移之后的空位用0补充
3.右移位:>>,有符号的移位操作
右移操作是将运算数的二进制码整体右移指定位数,右移之后的空位用符号位补充,如果是正数用0补充,负数用1补充。
例子:
public static void main(String[] args)
{
System.out.println(3<<2);//3左移2位
System.out.println(-3<<2);//-3左移2位
System.out.println(8>>2);//6右移2位
System.out.println(-8>>2);//-6右移2位
}
输出结果
12
-12
2
-2
4.逻辑右移:>>>只对位进行操作,没有算术含义,它用0填充左侧的空位。
对数进行位操作的方法有很多,这里主要介绍一下异或,算数左移,算数右移和逻辑右移。
1.异或运算就是按位相异为1,异或运算有一个重要的特点就是异或一个数两次就等于这个数本身,一个重要的应用就是:不用第三方变量交换两个数。如:交换整数n和m的值
n=n^m;
m=n^m;
n=n^m;
上述三条语句就可以完成n和m的交换。
2.左移位:<<,有符号的移位操作
左移操作时将运算数的二进制码整体左移指定位数,左移之后的空位用0补充
3.右移位:>>,有符号的移位操作
右移操作是将运算数的二进制码整体右移指定位数,右移之后的空位用符号位补充,如果是正数用0补充,负数用1补充。
例子:
public static void main(String[] args)
{
System.out.println(3<<2);//3左移2位
System.out.println(-3<<2);//-3左移2位
System.out.println(8>>2);//6右移2位
System.out.println(-8>>2);//-6右移2位
}
输出结果
12
-12
2
-2
4.逻辑右移:>>>只对位进行操作,没有算术含义,它用0填充左侧的空位。
相关文章推荐
- 黑马程序员_java基础(1) JDK汇总&变量与运算
- 黑马程序员 Java基础知识总结-运算类型
- 第2章 Java编程基础——FAQ2.17 在执行与运算时, 运算符&和&&有什么区别?
- java基础复习1--基本数据类型、运算符号、表达式语句与程序结构
- 黑马程序员Java基础加强49-56学习日记
- 黑马程序员-------学习日记Java基础 第一天
- 黑马程序员_java基础知识补充
- 对java基础数据类型在运算过程中的自动转换的一些分析
- 黑马程序员_java基础视频第20天_JavaIO流续2
- 黑马程序员0826_java基础知识
- 黑马程序员0831_java基础知识+多线程部分
- 黑马程序员Java基础加强41-48学习日记
- 黑马程序员Java培训、Android培训_Java 学习过程记录_语言基础2
- 黑马程序员Java基础加强17-24学习日记
- 黑马程序员Java基础加强9-16学习日记
- 黑马程序员0822_java基础知识
- Java学习笔记之语言基础――取模运算的正负符号
- 黑马程序员Java基础加强1-8学习日记
- 黑马程序员Java基础加强25-32学习日记
- 黑马程序员_java基础视频第18天_与系统交互的类及IO流