文档章节

Java中的移位运算符

乐在克里特
 乐在克里特
发布于 2017/02/23 13:43
字数 305
阅读 0
收藏 0

java中有三种移位运算符

<<      :     左移运算符,num << 1,相当于num乘以2

>>      :     右移运算符,num >> 1,相当于num除以2

>>>    :     无符号右移,忽略符号位,空位都以0补齐

 

package com.b510.test;
/**
 * @author Jone Hongten
 * @create date:2013-11-2
 * @version 1.0
 */
public class Test {

    public static void main(String[] args) {
        int number = 10;
        //原始数二进制
        printInfo(number);
        number = number << 1;
        //左移一位
        printInfo(number);
        number = number >> 1;
        //右移一位
        printInfo(number);
	number = number >>> 1;
       printInfo(number);
    }
    
    /**
     * 输出一个int的二进制数(注意的是int类型32位,long类型64位)
     * @param num
     */
    private static void printInfo(int num){
        System.out.println(Integer.toBinaryString(num));
    }
}
//运行结果
1010
10100
1010
101

 对结果对其说明:

43210      位数
--------
 1010      十进制:10     原始数         number
10100      十进制:20     左移一位       number = number << 1;
 1010      十进制:10     右移一位       number = number >> 1;
 101       十进制:5     无符右移一位       number = number >>> 1;

对于:>>>

 无符号右移,忽略符号位,空位都以0补齐

value >>> num     --   num 指定要移位值value 移动的位数。

无符号右移的规则只记住一点:忽略了符号位扩展,0补最高位  无符号右移运算符>>> 只是对32位和64位的值有意义

 

http://www.cnblogs.com/hongten/p/hongten_java_yiweiyunsuangfu.html

© 著作权归作者所有

共有 人打赏支持
乐在克里特
粉丝 16
博文 268
码字总数 394729
作品 0
杭州
程序员
私信 提问
JAVA移位运算 << 郏高阳

移位运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。 在移位运算时,byte、short和char类型移位后...

郏高阳
2011/08/30
0
0
LeetCode:Number of 1 Bits - 整数的汉明重量

1、题目名称 Number of 1 Bits(整数的汉明重量) 2、题目地址 https://leetcode.com/problems/number-of-1-bits/ 3、题目内容 英文:Write a function that takes an unsigned integer and......

北风其凉
2015/08/12
0
0
Java 中int与byte数组转换详解

1、与运算符的理解(&): 参加运算的两个数据,按二进位进行“与”运算。如果两个相应的二进位都为1,则该位的结果值为1,否则为0。即 0&0=0;0&1=0;1&0=0;1&1=1; 例子:int x = 6225555...

jiachcheng
2012/12/21
0
0
Java特殊符号>>,>>

Java中有三种移位运算符 前面两个<<,>>容易理解一些,一般我们都可以直接得出结果,最后一个忽略符号位是什么意思呢? 最大的正整数 我们知道Java中Interger占用4个字节,其中最高位为符号位...

Real_man
06/17
0
0
java 移位运算符 无符号右移求解

今天看了一下java 移位运算符 无符号右移(>>>),不知道它是如何计算的? 输出结果是:2147483647 请问大神们无符号右移(>>>)是如何运算的?很困惑

益达先生
2014/01/02
1K
6

没有更多内容

加载失败,请刷新页面

加载更多

jquery通过id显示隐藏

var $div3 = $('#div3'); 显示 $div3.show(); 隐藏 $div3.hide();

yan_liu
今天
3
0
《乱世佳人》读书笔记及相关感悟3900字

《乱世佳人》读书笔记及相关感悟3900字: 之前一直听「荔枝」,后来不知怎的转向了「喜马拉雅」,一听就是三年。上班的时候听房产,买房了以后听装修,兴之所至时听旅行,分手后听亲密关系,...

原创小博客
今天
3
0
大数据教程(9.6)map端join实现

上一篇文章讲了mapreduce配合实现join,本节博主将讲述在map端的join实现; 一、需求 实现两个“表”的join操作,其中一个表数据量小,一个表很大,这种场景在实际中非常常见,比如“订单日志...

em_aaron
今天
3
0
cookie与session详解

session与cookie是什么? session与cookie属于一种会话控制技术.常用在身份识别,登录验证,数据传输等.举个例子,就像我们去超市买东西结账的时候,我们要拿出我们的会员卡才会获取优惠.这时...

士兵7
今天
3
0
十万个为什么之为什么大家都说dubbo

Dubbo是什么? 使用背景 dubbo为什么这么流行, 为什么大家都这么喜欢用dubbo; 通过了解分布式开发了解到, 为适应访问量暴增,业务拆分后, 子应用部署在多台服务器上,而多台服务器通过可以通过d...

尾生
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部