`
nwsuafer
  • 浏览: 12449 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

<< 只有对数值右端的5位才有用 这样可以防止我们移位超过int类型所具有的位数

 
阅读更多

转自:http://bbs.csdn.net/topics/190065386


-->移位操作符操作的运算对象是二进制的“位”,int类型是32位也就是2的5次幂!如果移32位以上,那么原来的数的信息会全部丢失,这样也就没有什么意义了!所以上面的“只有右侧的5个低位才会有用”说的是:移位操作符右端的那个数(化成二进制)的低5位才有用,即

X<<y;
是指y的低5位才有用,即不能大于32。而对于long型也是同样的道理!

因此,如果对一个int型,进行移位,X<<y;当y小于32时,移位后的结果一般都在我们的预料当中;而如果y大于32时,由于移位超出了int所能表示的范围,这时就先把y化成二进制数,然后取该二进制数右端的低5位,再把这5位化成十进制,此时的这个十进制就是要对X移动的位数。

例如:intinta=140;
a<<34

System.out.println(Integer.toBinaryString(a<<b));

上面那两个语句的执行过程是:先把a化成二进制数:10001100

执行语句a<<34对a左移32位时,先把34化成二进制:100010,对该二进制数取右边5位,即00010,化成十进制数为2,所以实际上是对a左移两位。现在,地球人都会知道上面程序的输出结果是:1000110000
分享到:
评论

相关推荐

    LabVIEW的格式与

    格式与精度选项卡用于对数值对象改变格式与精度。  格式:数值对象的格式,如表1所示。 表1数值对象格式  位数和精度类型:精度类型包括“精度位数”或“有效数字”。如果精度类型设置为精度位数,那么位数...

    第四届 蓝桥杯 竞赛试题题目 C/C++高职高专组

     提交时,注意选择所期望的编译器类型。     8、题目标题:打印十字图    小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示(可参见p1.jpg)    $$$$$$$$$$$$$  $ $  $$$ $$$$$$$$$ $$$  $ ...

    python 取一个整数 a 从右端开始的 4~7位(示例)

    # 题目: # 取一个整数 a 从右端开始的 4~7位。 # 分析: # 可以这样考虑: # (1) 先使a右移4位。 # (2) 设置一个低4位全为1,其余全为0的数。可用(0&lt;&lt;4) # (3) 将上面二者进行 与运算(&)。

    蓝点被必做的算法经典题java.c/c++

     题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。  【程序22】  题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。  ...

    基于线性方程组右端向量修改的拓扑图同构判别

    基于线性方程组右端向量修改的拓扑图同构判别,罗贤海,,借助于邻接矩阵动态修改法的拓扑图同构判别思想,即利用素数对拓扑图顶点动态赋值获得线性方程组解向量的改变,从而找到拓扑图同

    最新JAVA编程题全集_50题及答案

    5. //统计字符串的个数 "I'm go to swimming" // I:1 // ':1 // m:3 // 空格:3 // g:2// ... String str = "I'm go to swimming"; Set&lt;String&gt; set = new HashSet&lt;String&gt;(); for(int i=0;i&lt;str.length...

    java 经典习题.doc

    程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果n&lt;&gt;k,但n能被k整除,则应打印出k的值,并用n除以k...

    数值分析模拟题

    数值分析上机实验模拟题,可供各位模拟练习,提高数值分析计算能力

    弹流润滑数值计算方法.docx

    由于该联立方程是三对角的,为了节约空间,方程的系数和右端等均放在缩减的矩阵A中。 (3)然后通过调用子程序TRA4,利用追赶法求解同一行上的所有压力增量。 (4)求解得到的压力增量放在D向量中回代,再对各节点...

    九九乘法表从右端输出

    让九九表从小到大输出依次往下排列,并且从显示器的右端开始排列,属于c++源代码。

    c代码-编写一个函数 rightrot(x, n),该函数返回将 x 循环右移(即从最右端 移出的位将从最左端移入)n(二进制)位后所得到的值。

    c代码-编写一个函数 rightrot(x, n),该函数返回将 x 循环右移(即从最右端 移出的位将从最左端移入)n(二进制)位后所得到的值。

    上机参考程序

    j++)cout&lt;&lt;"The Jacobi iteration matrix for A["&lt;&lt;i&lt;&lt;"]["&lt;&lt;j&lt;&lt;"]="&lt;&lt;B[i][j]&lt;&lt;endl; //} double error; int step=0;//定义误差与部数变量,一切OK!开始跌代吧^_^ do{ ++step;//注意Jacobi跌代的格式,下边...

    jQuery右端悬浮带返回顶部代码

    jQuery右端悬浮带返回顶部代码

    jQuery右端悬浮带返回顶部代码.zip

    实现效果: jQuery右端悬浮带返回顶部代码,这样的悬浮效果也还是不错的,可以在上面加上在线客服等,当一直预览网页时,点击返回顶部,也还是不错的效果,php中文网推荐下载!

    单片机原理及应用实验报告(全).doc

    2. 连接实验箱上的键盘和数码管,编写程序,将键盘输入值写在数码管的最右端,原来的数值,向左端移动。 3. 输入多次的情况 实验七 综合实验 1. 连接实验箱上的键盘和数码管 2. 编程,将实验箱做成一个能显示时间的...

    悬架铣右端小端面.rar

    悬架铣右端小端面.rar

    Verilog HDL语言,IEEE标准,64位大位宽全精度有符号浮点乘法器乘法运算

    两个不同长度的操作数进行位运算时,将自动按右端对齐,位数少的操作数会在高位用0补齐。 关系运算符优先级低于算术运算符,返回结果为逻辑值,0或1或x 等于运算符(= =)和全等运算符(===)的区别: 使用等于运算符时,...

    栈和队列数据结构实现和应用源码.zip

    2、某单位停车场共有 10 个车位,是一个一端封闭的只有一排的狭长通道, 车辆只能由左向右依次停放,最右端有一个大门供车辆出入。当车位未满时,车 辆可以进入并停在最后一辆车的后面;当车位已满时,车辆需在大门...

Global site tag (gtag.js) - Google Analytics