java移位运算符实验程序:<<(左移)、>>(带符 号右移)和>>>(无符号右移)

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++){

//循环一次向左移动一位,丢弃最高位,0补最低位

num=num<<1;    //1111 1111 1111 1111 1111 1111 1110 0     //29

//1111 1111 1111 1111 1111 1111 1110 00    //30

//1111 1111 1111 1111 1111 1111 1110 000   //31

//1111 1111 1111 1111 1111 1111 1110 0000  //-32

//1111 1111 1111 1111 1111 1111 1100 0000  //-64

System.out.println(num);

}

}

static void rightbit(){

int i;               //整型长度为32位                                                                                          //位

int num=0xFFFFFFE;  //1111 1111 1111 1111 1111 1111 1110      //28

for(i=0;i<4;i++){

//循环一次向右移动一位     符号位不变,左边补上符号位

num=num >> 1;  //1111 1111 1111 1111 1111 1111 111        //27

//1111 1111 1111 1111 1111 1111 11         //26

//1111 1111 1111 1111 1111 1111 1          //25

//1111 1111 1111 1111 1111 1111            //24

System.out.println(num);

}

}

//无符号右移

//

static void unregist_rightbit(){

int i;               //整型长度为32位                                                                                          //位

int num=0xFFFFFFE;  //1111 1111 1111 1111 1111 1111 1110      //28

for(i=0;i<4;i++){

//循环一次向右移动一位      忽略符号位扩展,0补最高位

num=num >>> 28;  //1111 1111 1111 1111 1111 1111 111        //27

//1111 1111 1111 1111 1111 1111 11         //26

//1111 1111 1111 1111 1111 1111 1          //25

//1111 1111 1111 1111 1111 1111            //24

System.out.println(num);

}

}

public static void main(String[] args) {

// TODO Auto-generated method stub

//leftbit();

rightbit();

System.out.println("================");

unregist_rightbit();

}

}

java移位运算符实验程序:<<(左移)、>>(带符 号右移)和>>>(无符号右移)

时间: 2024-10-08 19:34:58

java移位运算符实验程序:<<(左移)、>>(带符 号右移)和>>>(无符号右移)的相关文章

java移位运算符实验程序:&amp;lt;&amp;lt;(左移)、&amp;gt;&amp;gt;(带符 号右移)和&amp;gt;&amp;gt;&amp;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负整数的左移、右移、无符号右移

转自  Java负整数的左移.右移.无符号右移 Java负整数的左移.右移.无符号右移.正数的位移没有涉及到符号,而且正数的原码.反码.补码都是一样的,所以相对简单,但是对于负整数的位移,往往容易混淆. Java的<<  >>   >>> 都是针对补码来进行的,因为Java只存储补码. 例如对整数-3进行<<  >> >>>运算做说明. 整数-3的二进制 原码为 10000000 00000000 00000000 000

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;无符号右移

>>右移 右移,道在二进制中,假设用一个32位的Int表示一个64,那么高位就都是0,所以当我们把整个二进制数右移,如0100000 >> 2 = 0001000,可以看到右移两位后的数变成了8,可以分析出其实右移就是一个除以2的操作 例:对于非2,4,8,16,64的数也可以试验一下: System.out.println(3 >> 1); System.out.println(5 >> 1); System.out.println(63 >>

JAVA移位运算符

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

原码,反码,补码 与(&amp;) 或(|) 非(~) 异或(^) 左移 &lt;&lt; 右移 &gt;&gt; 无符号右移 &gt;&gt;&gt;

原码 数字在计算机中以二进制表示,8位的字长,最高位是符号位, 正数为0,负数为1.比如,3为0000 0011: -3为1000 0011. 注意,Java中int为32位.3的16进制表示为3,-3的16进制为fffffffd. 反码 正数的反码和原码相同. 负数的反码为符合位不变,其余按位取反. 3 为0000 0011: -3为1111 1100. 补码 正数的补码和原码相同. 负数的补码为反码+1. 3 为0000 0011: -3为1111 1101 与(&) 按位与,位数对齐,全部

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移位运算符

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

java移位运算符详解[转]

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