7.Java移位运算符和赋值运算符

一.移位运算符

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

  • 左移运算符用“<<”表示,是将运算符左边的对象,向左移动运算符右边指定的位数,并且在低位补零。其实,向左移 n 位,就相当于乘上 2 的 n 次方。
  • 右移运算符用符号“>>>”表示,是将运算符左边的对象向右移动运算符右边指定的位数,并且在高位补 0,其实右移 n 位,就相当于除上 2 的 n 次方。
  • 带符号的右移运算符用符号“>>”表示,是将运算符左边的运算对象,向右移动运算符右边指定的位数。如果是正数,在高位补零,如果是负数,则在高位补 1。

public class data17{
    public static void main(String[] args){
        int a=2;    int b=2;
        int x=16;    int y=2;
        int m=16;    int n=2;    int p=-16;    int q=2;

System.out.println("a 移位的结果是:"+(a<<b));
        System.out.println("x 移位的结果是:"+(x>>>y));
        System.out.println("m 的移位结果:"+(m>>n));
        System.out.println("p 的移位结果:"+(p>>q));
    }
}

运行结果:
a 移位的结果是:8
x 移位的结果是:4
m 的移位结果:4
p 的移位结果:-4

二.赋值运算符

赋值就是将数值赋给变量,而这个赋值运算符就充当了这个赋值的任务,其实最简单的赋值运算符,就是“=”。

当然除了“=”外,还有很多其他的赋值运算符。有“+=”、“-=”、“*=”、“/=”、“%=”、“>>=”、“>>>=”、“<<=”、“&=”、“|=”、“^=”。下面有一个简单的例子。

public class data20{
    public static void main(String[] args){
        int a=5;
        int b=2;
        System.out.println("a+=b 的值:"+(a+=b));
       System.out.println("a-=b 的值:"+(a-=b));
       System.out.println("a*=b 的值:"+(a*=b));
       System.out.println("a/=b 的值:"+(a/=b));
       System.out.println("a%=b 的值:"+(a%=b));
       System.out.println("a>>=b 的值:"+(a>>=b));
       System.out.println("a>>>=b 的值:"+(a>>>=b));
       System.out.println("a<<=b 的值:"+(a<<=b));
       System.out.println("a&=b 的值:"+(a&=b));
       System.out.println("a|=b 的值:"+(a|=b));
       System.out.println("a^=b 的值:"+(a^=b));
    }
}

输出结果:
“a+=b”就是 a=a+b=7;
“a-=b”就是 a=a-b=7-2=5;
“a*=b”就是 a=a*b=5*2=10;
“a/=b”就是 a=a/b=10/2=5;
“a%=b”就是 a=a%b=5%2=1;
“a>>=b”就是 a=a>>b=0;
“a>>>=b”就是 a=a>>>b=0;
“a<<=b”就是 a=a<<b=0;
“a&=b”就是 a=a&b=0;
“a|=b”就是 a=a|b=2;
“a^=b”就是 a=a^b=0;

时间: 2024-08-28 23:17:35

7.Java移位运算符和赋值运算符的相关文章

java移位运算符详解[转]

java移位运算符不外乎就这三种:<<(左移).>>(带符号右移)和>>>(无符号右移). 1. 左移运算符 左移运算符<<使指定值的所有位都左移规定的次数. 1)它的通用格式如下所示: value << num num 指定要移位值value 移动的位数. 左移的规则只记住一点:丢弃最高位,0补最低位 如果移动的位数超过了该类型的最大位数,那么编译器会对移动的位数取模.如对int型移动33位,实际上只移动了332=1位. 2)运算规则 按

java移位运算符详解

java移位运算符不外乎就这三种:<<(左移).>>(带符号右移)和>>>(无符号右移).1.左移运算符左移运算符<<使指定值的所有位都左移规定的次数.1)它的通用格式如下所示:value << numnum 指定要移位值value 移动的位数.左移的规则只记住一点:丢弃最高位,0补最低位如果移动的位数超过了该类型的最大位数,那么编译器会对移动的位数取模.如对int型移动33位,实际上只移动了332=1位. 2)运算规则按二进制形式把所有的

Java移位运算符 “&lt;&lt;” 作用及详解

左移运算符(<<) 基本用法 将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0). 例:a = a << 2 将a的二进制位左移2位,右补0, 左移1位后a = a *2; 若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2. 举例以及困惑 给出下面的程序,大家可以猜一猜结果是什么? public class MainClass { public static void main(String[] args) { long i = 1L <<

java移位运算符实验程序:&lt;&lt;(左移)、&gt;&gt;(带符 号右移)和&gt;&gt;&gt;(无符号右移)

public class txs { static void leftbit(){ int i;               //整型长度为32位                                                                                          //位 int num=0xFFFFFFE;  //1111 1111 1111 1111 1111 1111 1110      //28 for(i=0;i<28;i++

Java算数运算符、赋值运算符、比较运算符、位运算符、三目运算符的基本用法

在知道基本用法之前肯定要先了解一下什么是运算符,运算符就是对常量和变量进行操作的符号,它分为算数运算符.赋值运算符.比较运算符.逻辑运算符.位运算符.三目运算符. 算数运算符的种类 + - * / % ++ -- 注:整数相除只能得到整数,如果想得到小数,就要使用浮点数(float.double):/是获得除法的商:%获取的是除法操作的余数(4%5=8),运算结果的符号取决于参与运算的左边的符号. ++\--运算符的用法 ++:自加.对原有的数据进行+1 --:自减.对原有数据进行-1 放在操作

JAVA移位运算符

java中有三种移位运算符(二进制) <<      :     左移运算符,num << 1,相当于num乘以2 >>      :     右移运算符,num >> 1,相当于num除以2 >>>    :     无符号右移,忽略符号位,空位都以0补齐

理解java移位运算符

  移位运算符操作的对象就是二进制的位,可以单独用移位运算符来处理int型整数.  运算符       含义       例子       << 左移运算符,将运算符左边的对象向左移动运算符右边指定的位数(在低位补0) x<<3 >> "有符号"右移运算 符,将运算符左边的对象向右移动运算符右边指定的位数.使用符号扩展机制,也就是说,如果值为正,则在高位补0,如果值为负,则在高位补1. x>>3 >>> "无符

java移位运算符:&lt;&lt;(左移)、&gt;&gt;(带符号右移)和&gt;&gt;&gt;(无符号右移)。

1. 左移运算符 左移运算符<<使指定值的所有位都左移规定的次数. 1)它的通用格式如下所示: value << num num 指定要移位值value 移动的位数. 左移的规则只记住一点:丢弃最高位,0补最低位 如果移动的位数超过了该类型的最大位数,那么编译器会对移动的位数取模.如对int型移动33位,实际上只移动了332=1位. 2)运算规则 按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零. 当左移的运算数是int 类型时,每移动1位它的第31位就

计算机原码、补码、反码与java移位运算符(&lt;&lt;/&gt;&gt;/&gt;&gt;&gt;)

一.机器值和真值 1.机器值 一个数在计算机中的二进制表示形式,  叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011.如果是 -3 ,就是 10000011 . 那么,这里的 00000011 和 10000011 就是机器数. 2.真值 因为第一位是符号位,所以机器数的形式值就不等于真正的数值.例如上面的有符号数 10000011,其最高位1代表负,其真正数值是 -3