精华内容
下载资源
问答
  • 移位运算符也针对二进制的“位”,它主要包括:左移位运算符(>>)、带符号的右移位运算符(>>)。   1.左移运算符 左移运算符用“ public class data17 { public static void main(String[] args) { int a=2; ...


    移位运算符也针对二进制的“位”,它主要包括:左移位运算符(<<)、右移位运算符(>>>)、带符号的右移位运算符(>>)。

     


    1.左移运算符
    左移运算符用“<<”表示,是将运算符左边的对象,向左移动运算符右边指定的位数,并且在低位补零。其实,向左移n 位,就相当于乘上2 的n 次方,例如下面的例子。
    public class data17
    {
    public static void main(String[] args)
    {
    int a=2;
    int b=2;
    System.out.println("a 移位的结果是:"+(a<<b));
    }
    }
    运行结果
    a 移位的结果是:8
    分析上面的程序段:
    首先从本质上来分析,2 的二进制是00000010,它向左移动2 位,就变成了00001000,即8。如果从另一个角度来分析,它向左移动2 位,其实就是乘上2 的2 次方,结果还是8。

     


    2.右移运算符
    右移运算符用符号“>>>”表示,是将运算符左边的对象向右移动运算符右边指定的位数,并且在高位补0,其实右移n 位,就相当于除上2 的n 次方。
    public class data18
    {
    public static void main(String[] args)
    {
    int a=16;
    int b=2;
    System.out.println("a 移位的结果是:"+(a>>>b));
    }
    }
    运行结果
    a 移位的结果是:4
    分析上面的程序段:从本质上来分析,16 的二进制是00010000,它向右移动2 位,就变成了00000100,即4。如果从另一个角度来分析,它向右移动2 位,其实就是除以2 的2 次方,结果还是4。

     


    3.带符号的右移运算符
    带符号的右移运算符用符号“>>”表示,是将运算符左边的运算对象,向右移动运算符右边指定的位数。如果是正数,在高位补零,如果是负数,则在高位补1,先看下面一个简单的例子。
    public class data19
    {
    public static void main(String[] args)
    {
    int a=16;
    int c=-16;
    int b=2;
    int d=2;
    System.out.println("a 的移位结果:"+(a>>b));
    System.out.println("c 的移位结果:"+(c>>d));
    }
    }
    运行结果
    a 的移位结果:4
    c 的移位结果:-4
    分析上面的程序段:
    a 的值是16,转换成二进制是00010000,让它右移两位成00000100 即4。
    c 的值是-16,转换成二进制是11101111,让它右移一位成11111011 即-4。

    展开全文
  • )、右移位运算符(>>>)、带符号的右移位运算符(>>)。1.左移运算符左移运算符用“<<”表示,是将运算符左边的对象,向左移动运算符右边指定的位数,并且在低位补零。其实,向左移n 位,就...

    移位运算符也针对二进制的“位”,它主要包括:左移位运算符(<<)、右移位运算符(>>>)、带符号的右移位运算符(>>)。

     


    1.左移运算符
    左移运算符用“<<”表示,是将运算符左边的对象,向左移动运算符右边指定的位数,并且在低位补零。其实,向左移n 位,就相当于乘上2 的n 次方,例如下面的例子。
    public class reyo17
    {
    public static void main(String[] args)
    {
    int a=2;
    int b=2;
    System.out.println("a 移位的结果是:"+(a<<b));
    }
    }
    运行结果
    a 移位的结果是:8
    分析上面的程序段:
    首先从本质上来分析,2 的二进制是00000010,它向左移动2 位,就变成了00001000,即8。如果从另一个角度来分析,它向左移动2 位,其实就是乘上2 的2 次方,结果还是8。

     


    2.右移运算符
    右移运算符用符号“>>>”表示,是将运算符左边的对象向右移动运算符右边指定的位数,并且在高位补0,其实右移n 位,就相当于除上2 的n 次方。
    public class reyo18
    {
    public static void main(String[] args)
    {
    int a=16;
    int b=2;
    System.out.println("a 移位的结果是:"+(a>>>b));
    }
    }
    运行结果
    a 移位的结果是:4
    分析上面的程序段:从本质上来分析,16 的二进制是00010000,它向右移动2 位,就变成了00000100,即4。如果从另一个角度来分析,它向右移动2 位,其实就是除以2 的2 次方,结果还是4。

     


    3.带符号的右移运算符
    带符号的右移运算符用符号“>>”表示,是将运算符左边的运算对象,向右移动运算符右边指定的位数。如果是正数,在高位补零,如果是负数,则在高位补1,先看下面一个简单的例子。
    public class reyo19
    {
    public static void main(String[] args)
    {
    int a=16;
    int c=-16;
    int b=2;
    int d=2;
    System.out.println("a 的移位结果:"+(a>>b));
    System.out.println("c 的移位结果:"+(c>>d));
    }
    }
    运行结果
    a 的移位结果:4
    c 的移位结果:-4
    分析上面的程序段:
    a 的值是16,转换成二进制是00010000,让它右移两位成00000100 即4。
    c 的值是-16,转换成二进制是11101111,让它右移一位成11111011 即-4。

    转载于:https://www.cnblogs.com/interdrp/p/5005302.html

    展开全文
  • 右移位运算符

    2017-12-04 13:09:00
    Java中的位运算符: >>表示右移(算术右移),如果该数为正,则高位补0,若为负数,则高位补1; >>>表示无符号右移(逻辑右移),也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后...

    Java中的位运算符:

    >>表示右移(算术右移),如果该数为正,则高位补0,若为负数,则高位补1;

    >>>表示无符号右移(逻辑右移),也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0。

    二进制表示:16  :   0001,0000      -16: 1110,1111

    正数向右移动几位,得到的数值 = 原数值/2的n次方  ;负数>> 右移动几位,得到的数值 = 原数值/2的n次方,负数>>> 得到的数值是正数。

     

     

    左移只有一种:

    规则:丢弃最高位,往左移位,右边空出来的位置补0

    右移有两种:
    1. 逻辑右移:丢弃最低位,向右移位,左边空出来的位置补0

    2. 算术右移:丢弃最低位,向右移位,左边空出来的位置补原来的符号位(即补最高位)

     

    #include <iostream>
    using namespace std;
     
    void main()
    {
     int a = 1;
     unsigned int b = (a << 31) >> 31;
     cout<<"b = "<<b<<endl;
     
     getchar();
    }
     
     
    上面程序的意思很简单,即有符号的整型a,先左移31位,再右移31位,最后把结果转成无符号数打印出来
     
    整型a:         00000000 00000000 00000000 00000001
    左移31位后:10000000 00000000 00000000 00000000 最右侧直接补0
    右移31位后: 11111111   11111111   11111111   11111111  a是有符号数,采用算术右移,最左侧补符号位,即1

    原文:https://blog.csdn.net/yzf279533105/article/details/58642142

     

    转载于:https://www.cnblogs.com/z2qfei/p/7976596.html

    展开全文
  • 移位运算符也针对二进制的“位”,它主要包括:左移位运算符(>>)、带符号的右移位运算符(>>)。   1.左移运算符 左移运算符用“ public class data17 { public static void main(String[] args) {...

     移位运算符也针对二进制的“位”,它主要包括:左移位运算符(<<)、右移位运算符(>>>)、带符号的右移位运算符(>>)。

     


    1.左移运算符
    左移运算符用“<<”表示,是将运算符左边的对象,向左移动运算符右边指定的位数,并且在低位补零。其实,向左移n 位,就相当于乘上2 的n 次方,例如下面的例子。
    public class data17
    {
    public static void main(String[] args)
    {
    int a=2;
    int b=2;
    System.out.println("a 移位的结果是:"+(a<<b));
    }
    }
    运行结果
    a 移位的结果是:8
    分析上面的程序段:
    首先从本质上来分析,2 的二进制是00000010,它向左移动2 位,就变成了00001000,即8。如果从另一个角度来分析,它向左移动2 位,其实就是乘上2 的2 次方,结果还是8。

     


    2.右移运算符
    右移运算符用符号“>>>”表示,是将运算符左边的对象向右移动运算符右边指定的位数,并且在高位补0,其实右移n 位,就相当于除上2 的n 次方。
    public class data18
    {
    public static void main(String[] args)
    {
    int a=16;
    int b=2;
    System.out.println("a 移位的结果是:"+(a>>>b));
    }
    }
    运行结果
    a 移位的结果是:4
    分析上面的程序段:从本质上来分析,16 的二进制是00010000,它向右移动2 位,就变成了00000100,即4。如果从另一个角度来分析,它向右移动2 位,其实就是除以2 的2 次方,结果还是4。

     


    3.带符号的右移运算符
    带符号的右移运算符用符号“>>”表示,是将运算符左边的运算对象,向右移动运算符右边指定的位数。如果是正数,在高位补零,如果是负数,则在高位补1,先看下面一个简单的例子。
    public class data19
    {
    public static void main(String[] args)
    {
    int a=16;
    int c=-16;
    int b=2;
    int d=2;
    System.out.println("a 的移位结果:"+(a>>b));
    System.out.println("c 的移位结果:"+(c>>d));
    }
    }
    运行结果
    a 的移位结果:4
    c 的移位结果:-4
    分析上面的程序段:
    a 的值是16,转换成二进制是00010000,让它右移两位成00000100 即4。
    c 的值是-16,转换成二进制是11101111,让它右移一位成11111011 即-4。

     

    展开全文
  • 按位左右移位运算符

    2010-05-11 12:05:00
    按位左右移位运算符>> 今天在群里总算长见识了。。虽然不常用记下来...>> 1 = / 2>> 2 = / 4>> 3 = / 8>> 4 = / 16...失忆的猪猪(3224897) 17:04:54移位运算符包括:“>> 右移”;“>> 无符号右移”例子:-5>>3=-...
  • 按位向右移位运算符

    2013-07-12 11:00:26
    按位向右移位运算符 将 expression1 和 expression2 转换为 32 位整数,并将 expression1 中的所有位向右移动由 expression2 转换所得到的整数指定的位数。移到右端以外的位将被舍去。若要保留原始 expression 的...
  • Objective-C位运算符-向右移位运算符

    千次阅读 2011-08-26 14:21:05
    与向左移位运算符比起来,这个向右移位运算符(>>)显得稍微复杂些。从值的低位移出的位将丢失。把无符号的值向右移位,也就是总在左侧也就是高位移入0。对于有符号值而言,左侧移入1还是0依赖于被移动数字的符号,还...
  • 左移右移位运算符 大学的时候就选修过C语言程序设计,还水水的拿了一个C语言二级证书,此后C语言仿佛就与我无关了,知道研究生第二年开始做项目,我才知道这门古老程序语言的重要性。对于数学专业的我而言,matlab...
  • 输入一个十进制整数,将其转换成十六进制数输出,并提取每一字节所表示的十六进制数值逐一...”、右移位运算符“>>”。 ps:“0x”是十六进制数的前缀。位(bit):度量数据的最小单位,表示一位二进制信息...
  • 按位异或运算符 规则:相同为0,不同为1。 有时两个数据在异或后得到的结果跟两个数据的值不同,有时会跟两个值中某一个值相同。所以在用的时候应该考虑清楚。 比如:0010 ^ 0001 = 0011 这个得到的结果是不同。 ...
  • 举例左移:21 左移两位:21 << 2; 0001 0101 (21) -----0101 0100 (21 * 2^2) 规律:每向左移一位,相当于再这个数的基础上乘以一个2 class BitTest{ public static void main(String[] args) { ...
  • 右移位运算符,箭头是往右 【被右移数】 >> 【右移几位】 右移几位相当于原有二进制基础上往右推进几位 右移相当于除,每向右移1位,相当于 / 2 如图,跟55 / 4 =13 是一样的。 三、回到开头的那行代码 看完了左右...
  • 复习一下,有点忘了…位运算符作用于位,并逐位执行操作。&amp;、 | 和 ^ 的真值表如下所示:pqp &amp; qp | qp ^ q00000010111111010011假设如果 A = 60,且 B = 13,现在以二进制格式表示,它们如下所示:...
  • java 移位运算符

    2019-08-01 14:37:47
    移位运算符是和原码,反码,补码相挂钩的,是相互练习的,所以想搞懂移位运算符,就必须要搞懂什么是原码,什么是反码,什么是补码,...)、右移位运算符(>>>)、带符号的右移位运算符(>>),移位...
  • )、右移位运算符(>>>)、带符号的右移位运算符(>>),移位运算符操作的对象就是二进制的位,可以单独用移位运算符来处理int型整数。 运算符 含义 << 左移运算符,将运算符左边的...
  • 移位运算符

    2019-10-04 15:41:22
    移位运算符:分为右移位运算符和左运算符 那么问题来了,他这个公式是怎么来的呢? 举个例子: 3<<3 首先先把3转换为2进制是: 11 将11左移动三位也就是11000,那么11000转换为10进制就是:24 ...
  • Java移位运算符

    2018-10-19 13:41:23
    )、有符号右移位运算符(&amp;amp;gt;&amp;amp;gt;)、无符号右移位运算符(&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;) 1、左移位运算符(&amp;amp;lt;&amp;amp;lt;) 左移运算符&...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,204
精华内容 481
关键字:

右移位运算符