移位运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。
在移位运算时,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 >>>
运算规则:
按二进制形式把所有的数字向右移动对应巍峨位数,低位移出(舍弃),高位的空位补零。对于正数来说和带符号右移相同,对于负数来说不同。
其他结构和>>相似。
原帖地址:http://blog.csdn.net/Mailbomb/archive/2008/05/30/2496168.aspx
文章出处:http://www.diybl.com/course/3_program/java/javajs/2008531/118284.html
有的时候,你希望将一个数的二进制值向右或向左移位。执行左移时,在一个数的二进制形式中,所有位都向左移动由移位运算符右侧的操作数指定的位数。移位后在右边留下的空位将由零来填充。右移位运算符的原理相似,只是朝相反的方向移位。然而,如果数是负数,那么在左侧填充的值就是1而不是0。两个移位运算符是>>和<<,它们分别是右移位和左移位运算符。除此之外,还有复合移位和赋值运算符<<=和>& gt;=。
来看看下面的例子。假定现在有一个int值-7,它的二进制形式为1111 1111 1111 1111 1111 1111 1111 1001。在代码清单3-36中,我们使-7右移2个位置。
代码清单3-36 使用右移位运算符
int x;
x = (-7 >> 2); // 11111111111111111111111111111001 becomes
// 11111111111111111111111111111110
// Write out "x is -2."
System.Console.WriteLine("x = {0}.", x);
输出3-17展示了代码清单3-36的结果。
输出3-17
x = -2.
向右移位时,最右边的比特值会在边界处“离开”,左边的负数位标识符向右移动两个位置,腾出来的空白位置用1来填充。最终结果是-2。
分享到:
相关推荐
在计算机组成原理的学习中,运算器移位运算实验是一项至关重要的实践内容,它不仅帮助学生深入理解运算器的工作机制,而且对于数据在计算机中的传输和处理流程的理解起到了重要的桥梁作用。该实验的目的是使学生掌握...
计算机组成原理实验报告的核心是理解和应用带移位运算在计算机硬件层面的操作。移位运算在计算机科学中扮演着重要角色,特别是在数据处理和算术运算中。本实验旨在通过设计和实现一个带移位运算的模型机,让学生深入...
在计算机组成原理中,移位运算是一种基本的算术和逻辑运算,广泛应用于各种计算和数据处理场景。移位运算通常包括左移、右移和循环移位等类型,它们在计算机内部处理二进制数时起着重要作用。在本实验“计算机组成...
带移位运算模型机的设计与实现 本资源摘要信息旨在对带移位运算模型机的设计与实现进行详细的知识点描述。该模型机由微程序控制器控制,通过设计和实现计算机的基本步骤和方法来掌握机器指令的使用和编程。 一、...
### 负数移位运算详解 在计算机科学与编程领域中,移位运算是一个非常重要的概念。本文将深入探讨C语言中的负数移位运算,并通过具体的例子来解释其实现过程。移位运算包括左移(`)和右移(`>>`)两种类型。 ####...
其中,实验五的主题是“带移位运算模型机的设计与实现”,旨在通过对模型机的设计与调试,加深学生对微程序控制器以及数据通道控制的理解。 首先,让我们来明确一下实验的目标。实验的主要目的是通过设计与实现一款...
移位运算器是一种重要的数字逻辑电路,主要用于处理二进制数据的移位操作。移位操作在计算机科学和数字电子领域中广泛应用,包括数据处理、算术运算、串行通信等场景。本实验报告主要围绕74LS299芯片进行,这是一种...
C51之移位运算 C51之移位运算是指在C51单片机中实现移位运算的方法。移位运算是一种基本的位运算,通过将二进制数的每一位向左或向右移动来实现数据的移位。在C51单片机中,可以使用RR、RRC、RL、RLC等指令来实现...
广东工业大学的计组实验报告,以“带移位运算模型机的设计与实现五”为主题,详细探讨了移位运算和微程序控制器相结合的实验过程。本次实验不仅旨在加深学生对微程序控制器及其控制数据通道的理解,而且还着重于使...
一个简易的计算器(可进行移位求余等运算)
2.了解4位函数发生器74LS181的组合功能,熟悉运算器执行算术操作和逻辑操作的具体实现过程; 3.验证带进位控制的74LS181的功能。 二、实验设备: EL-JY-II型计算机组成原理实验系统一套,排线若干。
本任务书的核心是构建“基本模型机”和“带移位运算的模型机”,旨在帮助学生掌握计算机硬件设计的基础知识,理解数据在计算机中的表示、存储和处理方式,以及指令系统的构造原理。 首先,我们要讨论基本模型机的...
"计算机组成原理之定点数的移位运算" 定点数的移位运算是计算机组成原理中的一种重要运算方式。在本节中,我们将详细讲解定点数的移位运算,包括算数移位、逻辑移位和循环移位等。 一、引子 在学习定点数的移位...
Java的移位运算涉及到整数类型数据的二进制位操作,这对于理解计算机底层运作和优化代码至关重要。移位运算主要包括左移运算符()和右移运算符(>>,>>>)。在Java中,所有的整数类型(除了char类型外)都是有符号...
计算机组成原理-移位运算 计算机组成原理是计算机科学的基础学科,它研究计算机的硬件结构、工作原理和性能指标。移位运算是计算机运算的基础,它是计算机科学中最基本和最常见的运算操作之一。 移位操作按移位...
计算机组成原理中的移位运算是一种基本的数字处理操作,它涉及到二进制数在位级上的移动。在计算机系统中,移位运算被广泛应用于算术运算、位操作以及数据处理等多个领域。本实验报告主要关注逻辑移位和算术移位两种...
【计算机组成原理】\n\n本实验主要涉及的是计算机组成原理中的一个重要概念——带移位运算的模型机设计与实现。在广工的计算机组成原理实验五中,学生需要掌握微程序控制器控制的模型机数据通道,理解机器指令的使用...