`
lengyue_dick
  • 浏览: 84336 次
  • 性别: Icon_minigender_1
  • 来自: 内蒙古
社区版块
存档分类
最新评论

移位运算符

阅读更多
移位运算符
         移位运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。
         在移位运算时,byte、short和char类型移位后的结果会变成int类型,对于 byte、short、char和int进行移位时,规定实际移动的次数是移动次数和32的余数,也就是移位33次和移位1次得到的结果相同。移动 long型的数值时,规定实际移动的次数是移动次数和64的余数,也就是移动66次和移动2次得到的结果相同。
         三种移位运算符的移动规则和使用如下所示:
l <<
运算规则:
按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。
语法格式:
需要移位的数字 << 移位的次数
例如: 3 << 2,则是将数字3左移2位
                   计算过程:
                            3 << 2
         首先把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011,然后把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,最后在低位(右侧)的两个空位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100,则转换为十进制是12。
数学意义:
         在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。
l >>
运算规则:
         按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数补1。
语法格式:
         需要移位的数字 >> 移位的次数
         例如11 >> 2,则是将数字11右移2位
计算过程:
         11的二进制形式为:0000 0000 0000 0000 0000 0000 0000 1011,然后把低位的最后两个数字移出,因为该数字是正数,所以在高位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 0010。转换为十进制是3。
数学意义:
         右移一位相当于除2,右移n位相当于除以2的n次方。
l >>>
运算规则:
         按二进制形式把所有的数字向右移动对应巍峨位数,低位移出(舍弃),高位的空位补零。对于正数来说和带符号右移相同,对于负数来说不同。
                   其他结构和>>相似。

分享到:
评论
1 楼 飞扬云 2011-09-06  
楼主,这个文章有个地方好像有误:

计算过程:
         11的二进制形式为:0000 0000 0000 0000 0000 0000 0000 1011,然后把低位的最后两个数字移出,因为该数字是正数,所以在高位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 0010。转换为十进制是3。

转换成十进制明明是2啊,怎么是3?因为0000 0000 0000 0000 0000 0000 0000 0010这个不就是2的一次方嘛。2的一次方就是2啊。

楼主,你看看问题出在哪里?

相关推荐

    java 移位运算符的资源

    Java 移位运算符是编程语言中用于处理二进制位的一种高效操作方式,它们能够对整数类型(byte, short, int, long)的值进行左移、右移和无符号右移操作。理解这些运算符对于优化代码和深入理解计算机底层工作原理至...

    GUI巧用移位运算符获取汉字编码值(C#).rar

    一个使用C#实现的小案例,通过使用移位运算符来获取汉字的GB2312编码值(附blog原文:https://blog.csdn.net/qq_38768365/article/details/99410757)

    Java移位运算符1

    在Java编程语言中,移位运算符是一种高效的方式来进行位操作,它们对于处理二进制数据和进行快速的乘法、除法等计算非常有用。本文将深入探讨Java中的三种移位运算符:左移运算符(),右移运算符(&gt;&gt;)以及无符号右...

    Java中的进制与移位运算符

    在Java编程语言中,进制表示法和移位运算符是两种重要的概念,它们在处理二进制数据和高效计算中发挥着关键作用。本文将深入探讨这两种概念,并结合实例来帮助理解。 首先,让我们来看Java中的进制表示法。在计算机...

    Java移位运算符详解实例(小结)

    移位运算符主要包括左移位运算符()、右移位运算符(&gt;&gt;&gt;)和带符号的右移位运算符(&gt;&gt;)。这些运算符可以单独用来处理int型整数。 1. 左移位运算符() 左移位运算符用“”表示,是将运算符左边的对象向左移动...

    深入理解C++移位运算符

    C++的移位运算符是编程中非常重要的概念,它包括左移运算符()和右移运算符(&gt;&gt;)。这些运算符允许我们将整数的位向左或向右移动指定的次数,从而实现快速的乘除运算和其他位级别的操作。 左移运算符()将数字的...

    Java三种移位运算符原理解析

    Java三种移位运算符原理解析 Java移位运算符是Java编程语言中的一种基本操作符,主要用于对二进制数的移位操作。Java中有三种移位运算符:左移运算符()、带符号右移运算符(&gt;&gt;)和无符号右移运算符(&gt;&gt;&gt;)。下面...

    C语言中位移位运算符[借鉴].pdf

    在C语言编程中,位运算是一种直接对整数类型数据的二进制表示进行操作的手段,而在这些位运算中,位移运算符则是一种能够高效地对数据进行移位操作的工具,对于优化算法性能有着不可忽视的作用。位移运算符分为两种...

    java中的移位运算符心得总结

    Java中的移位运算符心得总结 Java中的移位运算符是指在Java编程语言中用于执行位ewise操作的运算符。它包括左移运算符()、右移运算符(&gt;&gt;)和无符号右移运算符(&gt;&gt;&gt;)。这些运算符可以对整数类型的变量进行位...

    Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)

    在Erlang中,运算符扮演着重要角色,它们可以分为比较运算符、数值运算符、移位运算符和逻辑运算符。这些运算符在Erlang语言的逻辑、条件判断和数据操作中有着广泛的应用。 在Erlang中,比较运算符用于比较两个值,...

    C++位运算符详解(异或运算符和移位运算符)

    本文将深入探讨两种特殊的位运算符:异或运算符(^)和移位运算符(和 &gt;&gt;)。 首先,让我们了解什么是位运算。位运算符作用于整数类型的二进制表示上,例如char、short、int和long。它们直接操作单个比特位,而不是...

    java中关于移位运算符的demo与总结(推荐)

    下面小编就为大家带来一篇java中关于移位运算符的demo与总结(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    java学习笔记之我的笔记

    #### 一、Java左移位运算符详解 在Java编程语言中,位运算符主要用于处理二进制位的操作。其中,左移位运算符(`)是一种非常重要的位操作,它允许我们将一个整数的二进制表示向左移动指定的位数。通过本章节的学习...

    按位操作.docx

    移位运算符是按位运算符的一种,包括左移位运算符()和右移位运算符(&gt;&gt;). 左移位运算符将数值的位向左移动指定的位数,相当于乘以2的相应次方;右移位运算符则将数值的位向右移动,相当于除以2的相应次方。需要注意的...

    C++运算符优先级表

    移位运算符的优先级较低,包括左移位和右移位运算符。例如: * 左移位:int flags = 33 ; * 右移位:int flags = 33 &gt;&gt; 1; 六、关系运算符 关系运算符的优先级较低,包括小于、小于或等于、大于、大于或等于...

    运算符与类型强制转换PPT学习教案.pptx

    本节课将涵盖 C# 中的运算符和类型强制转换的相关知识点,包括基本的算术运算符、逻辑运算符、位运算符、移位运算符、比较运算符、三目运算符、sizeof 运算符、 typeof 运算符、is 运算符、as 运算符、checked 和 ...

    JAVA运算符.pdf

    移位运算符可以用于高效的乘除法计算,如`x 相当于`x * 2^n`,`x &gt;&gt; n`相当于`x / 2^n`。 类型转换可以是自动的(如较小类型转换为较大类型),也可以是强制的(通过显式类型转换实现)。自动转换发生在赋值时不会...

Global site tag (gtag.js) - Google Analytics