`
zhb8015
  • 浏览: 395664 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Group-logo
Spring Roo杂谈
浏览量:0
社区版块
存档分类
最新评论

移位操作

    博客分类:
  • J2SE
阅读更多

java中的移位操作只对int和long有效,byte、short、char升级为int后再进行移位

 

移位操作符有>>(右移)、<<(左移)、>>>(右移)三种,注意两点:1.没有<<<符号  2.移位是不循环的

 

三种的区别是

 

>>是带符号右移,负数高位补1,正数补0

 

<<左移不管负数还是正数,在低位永远补0

 

>>>是不带符号右移,不论负数还是正数,高位补0

 

测试程序:

 

  1. public class Shift {  
  2.     public static void main(String[] args) {  
  3.         System.out.println("******************正数左移在低位补0*******************");  
  4.         int a = 1;  
  5.         a = a << 2;  
  6.         System.out.println(a);  
  7.         System.out.println(Integer.toBinaryString(a));  
  8.         System.out.println("******************正数右移在高位补0********************");  
  9.         a = 1;  
  10.         a = a >> 2;  
  11.         System.out.println(a);  
  12.         System.out.println(Integer.toBinaryString(a));  
  13.         System.out.println("******从上面结果可以看出:移位是不循环的*****");  
  14.         System.out.println("看看负数的移位:");  
  15.   
  16.         System.out.println("***********负数的右移操作高位补1**************");  
  17.         int i = -1;  
  18.         System.out.println(i + ":");  
  19.         System.out.println(Integer.toBinaryString(i));  
  20.         i = i >> 2;  
  21.         System.out.println(i);  
  22.         System.out.println(Integer.toBinaryString(i));  
  23.         System.out.println("**********负数的左移操作低位补0*****************");  
  24.         i = i << 2;  
  25.         System.out.println(i);  
  26.         System.out.println(Integer.toBinaryString(i));  
  27.         System.out.println("*************再看看>>>操作符*************");  
  28.         System.out.println("*************负数的>>>操作高位补0***************");  
  29.         i = -1;  
  30.         System.out.println(Integer.toBinaryString(i));  
  31.         i = i >>> 10;  
  32.         System.out.println(i + ":");  
  33.         System.out.println(Integer.toBinaryString(i));  
  34.         System.out.println("*************注意:没有<<<符号**************");  
  35.   
  36.         System.out.println("**********byte类型移位时要强转换*************");  
  37.         byte k = 10;  
  38.         System.out.println(Integer.toBinaryString(k));  
  39.         k = (byte) ((byte) k >>> 2);  
  40.         System.out.println(Integer.toBinaryString(k));  
  41.     }  
  42. }  


运行结果: ******************正数左移在低位补0*******************
4
100
******************正数右移在高位补0********************
0
0
******从上面结果可以看出:移位是不循环的*****
看看负数的移位:
***********负数的右移操作高位补1**************
-1:
11111111111111111111111111111111
-1
11111111111111111111111111111111
**********负数的左移操作低位补0*****************
-4
11111111111111111111111111111100
*************再看看>>>操作符*************
*************负数的>>>操作高位补0***************
11111111111111111111111111111111
4194303:
1111111111111111111111
*************注意:没有<<<符号**************
**********byte类型移位时要强转换*************
1010
10

分享到:
评论

相关推荐

    VB6运用【系统API调用】实现的移位操作

    VB6“移位操作”函数模块,通过调用系统API实现。 此方法属于本人的“原创”,呵呵…… 运行效率比【内联汇编代码 + CallWindowProc】高几倍。 当然跟用其它语言比如C++写一个专门的“移位操作DLL”给VB6调用相比,...

    编程过程中常见移位操作

    ### 编程过程中常见移位操作 在计算机科学与编程领域中,位操作是一类非常高效且基础的操作方法,能够帮助开发者实现对数据结构的快速处理。本文将围绕标题“编程过程中常见移位操作”以及描述中提到的概念,如位...

    汇编实验2 实验二 算术逻辑运算及移位操作

    ### 汇编实验2 实验二 算术逻辑运算及移位操作 #### 实验目的 本实验旨在帮助学生深入理解并掌握汇编语言中的算术逻辑运算指令和移位指令的功能,并通过实际编程加深对标志寄存器各标志位意义的理解以及这些指令...

    中科大csapp实验一移位操作

    c语言实现的移位操作实验,中科大程序设计与计算机系统实验一

    vb移位操作 #资源达人分享计划#

    在VB(Visual Basic)编程语言中,移位操作是一种对二进制数进行位移的运算,它包括左移(Shl)和右移(Shr)。这些操作在处理二进制数据、优化计算和理解计算机底层工作原理时非常有用。下面我们将详细探讨VB中的...

    【源码】VB6_移位操作接口模块

    【源码】VB6_移位操作接口模块 在VB6.0的编程环境中,有时候我们需要执行一些底层的位操作,比如移位操作。移位操作是计算机科学中的一种基本运算,它允许我们通过移动二进制数的位来实现乘以或除以2的幂次。在VB...

    C语言中的移位操作技巧

    ### C语言中的移位操作技巧 #### 一、概述 在C语言中,位操作是一项非常重要的技术,尤其是在处理硬件接口、低级编程以及优化算法性能等方面。位操作包括位的移动(移位)、位的逻辑运算等。本文将重点介绍几种...

    C语言的移位操作

    关于C语言位操作,左移时总是移位和补零。右移时无符号数是移位和补零,此时称为逻辑右移;而有符号数大多数情况下是移位和补最左边的位(也就是补最高有效位),移几位就补几位,此时称为算术右移。

    java 移位操作符的使用

    Java中的移位操作符用于对二进制数进行左移()、右移(&gt;&gt;)和无符号右移(&gt;&gt;&gt;)操作。 左移()操作符:将一个数的所有位向左移动指定的位数,右侧空出的位用0填充。 右移(&gt;&gt;)操作符:将一个数的所有位向右移动...

    三维数组元素上下移位_三维数组移位操作_

    这个VI可能包含了上述步骤的图形化代码,通过连线和功能节点展示了如何在LabVIEW中实现三维数组的上下移位操作。打开此VI,可以更直观地学习和理解每个步骤的具体实现方式。 总之,理解和掌握三维数组元素的上下...

    Linux平台下C语言中的移位操作

    "Linux平台下C语言中的移位操作" 在 Linux 平台下,C 语言中的移位操作是一个非常重要的概念,它广泛应用于各种编程领域中。移位操作是指对二进制数进行位移的操作,这种操作可以分为左移和右移两种。 首先,让...

    移位实现乘除法运算

    在计算机科学与电子工程领域,移位操作是一种高效且基础的运算方式,尤其在处理二进制数据时,它能够替代传统的乘法和除法运算,从而提高计算效率并减少硬件资源的消耗。本文将深入探讨如何利用移位操作来实现多字节...

    计算机组成带移位运算实验报告

    - 理解带进位的移位操作及其对计算结果的影响。 - 分析带移位运算指令执行的时间复杂度。 - 能够设计并实现简单的计算机模型,模拟移位运算过程。 - 通过实验记录和分析,提高问题解决和实验报告编写能力。 2. ...

    C语言的循环移位操作

    ### C语言中的循环移位操作 在计算机科学与编程领域,循环移位(或称为循环移位、循环移位)是一种常见的数据处理方法,尤其是在低级编程和算法优化中经常用到。本篇文章将深入探讨如何在C语言中实现循环左移和循环...

    关于C编程的移位操作

    C 语言中的移位操作是基于二进制的位操作,它允许我们将数字的位向左或向右移动,这在计算机科学中尤其有用,因为它可以实现高效的乘法和除法运算。移位操作符有两种类型:左移()和右移(&gt;&gt;)。 左移运算符()将...

    C语言编程技术实践2020版 数据右循环移位操作.docx

    在提供的项目代码中,`move`函数接收一个`unsigned char`类型的`value`和一个整数`n`作为参数,执行上述的右循环移位操作。主函数`main`中,用户可以通过输入数据和位移数来调用`move`函数,最后打印出移位后的结果...

    移位操作指令汇编源文件1

    根据给定文件的信息,我们可以总结出以下关于移位操作指令汇编源文件的关键知识点: ### 一、汇编语言基础知识 #### 汇编语言概述 汇编语言是一种低级编程语言,它与机器语言非常接近,每条汇编语言指令对应一条...

    关于移位操作的一点重要说明

    在编程语言中,移位操作是一种非常基础且重要的算术运算,特别是在处理二进制数据时。本文将详细讲解C语言中的移位操作,并通过具体的示例来解析其工作原理和注意事项。 首先,我们需要理解移位操作的基本概念。在...

    SystemChange(c语言移位操作实现的10进制到16进制和2进制的转换)

    在C语言中,移位操作是编程中一种高效的数据处理方式,它允许我们将二进制数的位向左或向右移动。这种操作在进行计算、数据存储和转换时非常有用,尤其是对于处理二进制和十六进制数据。本文将深入探讨如何使用C语言...

    单片机移位实现乘法运算(汇编语言)

    在计算机中,乘法运算通常可以通过一系列加法和移位操作来实现。以两个二进制数A和B为例,假设A和B均为8位或16位的二进制数,我们可以按照以下步骤来计算它们的乘积: 1. **初始化**:首先设置一个累加器,用来存储...

Global site tag (gtag.js) - Google Analytics