ava中有三种移位运算符
转自:http://www.cnblogs.com/hongten/p/hongten_java_yiweiyunsuangfu.html
<< : 左移运算符,num << 1,相当于num乘以2
>> : 右移运算符,num >> 1,相当于num除以2
>>> : 无符号右移,忽略符号位,空位都以0补齐
下面来看看这些移位运算都是怎样使用的

- 1 /**
- 2 *
- 3 */
- 4 package com.b510.test;
- 5
- 6 /**
- 7 * @author Jone Hongten
- 8 * @create date:2013-11-2
- 9 * @version 1.0
- 10 */
- 11 public class Test {
- 12
- 13 public static void main(String[] args) {
- 14 int number = 10;
- 15 //原始数二进制
- 16 printInfo(number);
- 17 number = number << 1;
- 18 //左移一位
- 19 printInfo(number);
- 20 number = number >> 1;
- 21 //右移一位
- 22 printInfo(number);
- 23 }
- 24
- 25 /**
- 26 * 输出一个int的二进制数
- 27 * @param num
- 28 */
- 29 private static void printInfo(int num){
- 30 System.out.println(Integer.toBinaryString(num));
- 31 }
- 32 }

运行结果为:
- 1010
- 10100
- 1010
我们把上面的结果对齐一下:
- 43210 位数
--------- 1010 十进制:10 原始数 number
- 10100 十进制:20 左移一位 number = number << 1;
- 1010 十进制:10 右移一位 number = number >> 1;
看了上面的demo,现在是不是对左移和右移了解了很多了呢
对于:>>>
无符号右移,忽略符号位,空位都以0补齐
value >>> num -- num 指定要移位值value 移动的位数。
无符号右移的规则只记住一点:忽略了符号位扩展,0补最高位 无符号右移运算符>>> 只是对32位和64位的值有意义
ava中有三种移位运算符的更多相关文章
- java中的移位运算符:<<,>>,>>>总结
java中有三种移位运算符 << : 左移运算符,num << 1,相当于num乘以2 >> : 右移运算符,num >& ...
- Java中的移位运算符
java中有三种移位运算符 << : 左移运算符,num << 1,相当于num乘以2 >> : 右移运算符,num >& ...
- java中的移位运算符:<<,>>,>>>总结(转)
java中有三种移位运算符 << : 左移运算符,num << 1,相当于num乘以2 >> : 右移运算符,num >& ...
- 【java编程】java中的移位运算符
java中有三种移位运算符 << : 左移运算符,num << 1,相当于num乘以2 >> : 右移运算符,num >& ...
- java中,有关移位运算符的有关讨论
java中有三种移位运算符 << : 左移运算符,num << 1,相当于num乘以2 >> : 右移运算符,num >& ...
- java中关于移位运算符的demo与总结
首先,移位运算符有三种,其操作类型只支持:byte / short / char / int和long五种. << 左移运算符,表示将左边的操作数的二进制数据向左移动*位,移动后空缺位以0 ...
- 019C#中使用移位运算符获取汉字编码值
在进行移位运算时,当数值的二进制数每次向左移1位就相当于乘以2,当数值每次向右移一位就相当于除以2 private void button1_Click(object sender, EventArg ...
- c语言中对于移位运算符的用法
//1 << 0 是把1 按2进制 左移0位,结果还是 1 ,2进制 0000 0001 //1 << 1, 是把1 按2进制 左移1位,结果是2,2进制 0000 0010 ...
- java 移位运算符
java中有三种移位运算符 << : 左移运算符,num << 1,相当于num乘以2 >> : 右移运算符,num >& ...
随机推荐
- MySQL——SQL Mode详解
简介 MySQL服务器能够工作在不同的SQL模式下,并能针对不同的客户端以不同的方式应用这些模式.这样,应用程序就能对服务器操作进行量身定制以满足自己的需求.这类模式定义了MySQL应支持的SQL语法 ...
- AndroidA——背景选择器selector用法汇总(一)
一.创建xml文件,位置:drawable/xxx.xml,同目录下记得要放相关图片 <?xml version="1.0" encoding="utf-8&quo ...
- USB入门
简述 USB(Universal Serial Bus)全称通用串口总线,USB为解决即插即用需求而诞生,支持热插拔.USB协议版本有USB1.0.USB1.1.USB2.0.USB3.1等,USB2 ...
- bower failed: UNABLE_TO_VERIFY_LEAF_SIGNATURE
.bowerrc配置 { "strict-ssl": false }
- underscore-1.8.3-analysis.js
// Underscore.js 1.8.3 // http://underscorejs.org // (c) 2009-2015 Jeremy Ashkenas, DocumentCloud an ...
- r语言 列出所有变量
你希望知道目前工作空间中存在哪些已定义的变量和函数. 解决方案 使用ls函数,或者使用ls.str函数了解每个变量更详细的信息. 讨论 ls函数可以显示当前工作空间中所有对象的名称:> x &l ...
- thinkphp 控制器继承
<?php // 本类由系统自动生成,仅供测试用途 class IndexAction extends CateAction { } ?>
- ubuntu运行命令tee显示和保存为log
一般有三种需求: 假如我要执行一个py文件 python class.py 1:将命令输出结果保存到文件log.log python class.py |tee log.log 结果就是:屏幕输出和直 ...
- Ogre 编辑器三(自动生成与更新Ogre对象编辑界面)
最开始设计这个编辑器时,其中一个要求就是能在运行过程中,通过UI来更新各对象,这样我们就能明确每个Ogre对象更新其属性影响的渲染效果.比如点光源,方向光源,聚光灯各属性与效果,深度测试开启与关闭,深 ...
- Axiom3D:Ogre动画基本流程与骨骼动画
在Axiom中,Animation类用于管理动画,在此对象中主要管理着AnimationTrack对象,此对象用于管理动画的各种类型的每一桢.在Axiom中,动画类型主要有变形动画,姿态动画,骨骼动画 ...