算数右移逻辑右移java的表示_java的算术右移()与逻辑右移()
运算符“>>”执行算术右移,它使用最高位填充移位后左侧的空位。右移的结果为:每移一位,第一个操作数被2除一次,移动的次数由第二个操作数确定。
逻辑右移或叫无符号右移运算符“>>>“只对位进行操作,没有算术含义,它用0填充左侧的空位。
算术右移不改变原数的符号,而逻辑右移不能保证这点。
移位运算符约简其右侧的操作数,当左侧操作数是int类型时,右侧以32取模;当左侧是long类型时,右侧以64取模。
测试代码如下:
public class Test {
public Test(){
System.out.println("=============算术右移 >> ===========");
int i=0xC0000000;
System.out.println("移位前:i= "+i+" = "+Integer.toBinaryString(i)+"(B)");
i=i>>28;
System.out.println("移位后:i= "+i+" = "+Integer.toBinaryString(i)+"(B)");
System.out.println("---------------------------------");
int j=0x0C000000;
System.out.println("移位前:j= "+j+" = "+Integer.toBinaryString(j)+"(B)");
j=j>>24;
System.out.println("移位后:j= "+j+" = "+Integer.toBinaryString(j)+"(B)");
System.out.println("\n");
System.out.println("==============逻辑右移 >>> =============");
int m=0xC0000000;
System.out.println("移位前:m= "+m+" = "+Integer.toBinaryString(m)+"(B)");
m=m >>> 28;
System.out.println("移位后:m= "+m+" = "+Integer.toBinaryString(m)+"(B)");
System.out.println("---------------------------------");
int n=0x0C000000;
System.out.println("移位前:n= "+n+" = "+Integer.toBinaryString(n)+"(B)");
n=n>>24;
System.out.println("移位后:n= "+n+" = "+Integer.toBinaryString(n)+"(B)");
System.out.println("\n");
System.out.println("==============移位符号的取模===============");
int a=0xCC000000;
System.out.println("移位前:a= "+a+" = "+Integer.toBinaryString(a)+"(B)");
System.out.println("算术右移32:a="+(a>>32)+" = "+Integer.toBinaryString(a>>32)+"(B)");
System.out.println("逻辑右移32:a="+(a>>>32)+" = "+Integer.toBinaryString(a>>>32)+"(B)");
}
public static void main(String[] args){
new Test();
}
}
运行结果:
=============算术右移 >> ===========
移位前:i= -1073741824 = 11000000000000000000000000000000(B)
移位后:i= -4 = 11111111111111111111111111111100(B)
---------------------------------
移位前:j= 201326592 = 1100000000000000000000000000(B)
移位后:j= 12 = 1100(B)
==============逻辑右移 >>> =============
移位前:m= -1073741824 = 11000000000000000000000000000000(B)
移位后:m= 12 = 1100(B)
---------------------------------
移位前:n= 201326592 = 1100000000000000000000000000(B)
移位后:n= 12 = 1100(B)
==============移位符号的取模===============
移位前:a= -872415232 = 11001100000000000000000000000000(B)
算术右移32:a=-872415232 = 11001100000000000000000000000000(B)
逻辑右移32:a=-872415232 = 11001100000000000000000000000000(B)
算数右移逻辑右移java的表示_java的算术右移()与逻辑右移()相关推荐
- 【Java】位运算符---算术右移和逻辑右移、算术左移和逻辑左移
文章目录 1. 算术左移和逻辑左移 2. 算术右移和逻辑右移 3. Java中<<.>>和>>>的含义 1. 算术左移和逻辑左移 对于有符号数或无符号数:算术 ...
- c语言无符号整型右移,c语言 java 有符号数,无符号数. 左移,右移运算
1: c语言区分有符号数,无符号数.有符号数是符号位在首位,无符号数首位就是普通位数. java只有有符号数,换句话说java二进制中首位都是符号位.0正1负. 2: 左移在所有语言中只是左移,不存在 ...
- 算术左移,逻辑左移,算术右移,逻辑右移之间的区别
1.算术左移,逻辑左移: 都是在右边补0: 比如 00101011 算术左移一位:01010110 逻辑左移一位:01010110 对于二进制的数值来说左移n位等于原来的数值乘以2的n次方 比如000 ...
- 逻辑左移、算术左移、逻辑右移、算术右移
汇编指令: (注意,所有移位指令,被移出去的那个位上的值,会被赋值给CF标志位) 逻辑左移:SHL(右边补0) 算术左移:SAL(1.寄存器中自动转换成SHL,左移不存在算术左移,所有左移都是SHL: ...
- 算术右移(right arithmetic shift)逻辑右移(right logical shift)算术左移和逻辑左移(left logical shift)
算术右移:数字向右移动,左边补符号位.Windows中支持的函数为:Int64ShraMod32 逻辑右移:数字向右移动,左边补0.Windows中支持的函数为:Int64ShrlMod32 算术左移 ...
- Java 位运算理解 Java中的位移运算整理 Java右移n位 Java左移n位
Java 位运算理解 Java中的位移运算整理 Java右移n位 Java左移n位 一.概述 1.在浏览一篇文章时,看到一个介绍 ,使用位移操作替代乘除法 ,若位移多位该怎么计算呢? 二.代码理解 ...
- java物理架构_Java应用架构读书笔记(1):物理设计与逻辑设计
逻辑设计 几乎大部分帮助软件设计和架构的原则和模式主要都是关注逻辑设计.逻辑设计主要关于语言构造块,比如类,操作符,方法和包.识别一个类的方法,类之间的关系,系统包的接口等问题都是逻辑设计相关的问题. ...
- java比较运算_Java比较运算符
注意哦: 1. > . < . >= . <= 只支持左右两边操作数是数值类型 2. == . != 两边的操作数既可以是数值类型,也可以是引用类型 public clas ...
- java第二章_JAVA第二章知识点
JAVA第二章知识点 本章知识梳理 2.1 关键字 2.2 标识符 2.3 变 量 2.4运算符 2.5 程序流程控制 2.6 方法 2.1 关键字 关键字(keyword)的定义和特点 定义:被ja ...
最新文章
- windows 技术篇-判断某个ip地址相对于自己的主机是内网ip还是外网ip实例演示
- 登录抓包逆向分析学习笔记
- 软考-信息系统项目管理师-项目质量管理
- 【AIX 命令学习】lsattr 显示一个给定设备或一种设备的属性
- python psycopg2_python2.7 psycopg2
- 征稿 | 2019年全国知识图谱与语义计算大会(CCKS2019)第二轮征稿启事
- Eclipse如何关闭在RUN/DEBUG时弹出窗口?
- 贪心 赛码 1001 Movie
- 《精通javascript》5,6章小结(一)
- abp后台任务BackGroundWorker
- linux的I/O多路转接select的fd_set数据结构和相应FD_宏的实现分析
- BCH码(BCH code)详细分析
- (二)html 复杂表格
- 接口性能测试方案设计方法有哪些?要怎么去写?
- 私有化单机题库管理软件“题库管家”1.3版本正式发布,windows版与mac版下载地址
- MCU--低功耗处理流程
- 搭建美丽天天秒链动2+1OpenRApp开发
- 比较好的Java 网站
- Vivo升级android版本,vivo手机系统怎么升级?vivo系统升级教程
- java security_java.security.NoSuchAlgorithmException