文档章节

算术移位 和 逻辑移位

pan_1308
 pan_1308
发布于 2017/05/19 14:10
字数 226
阅读 25
收藏 0
//		System.out.println(5<<2); //运行结果是20  // 101 左移2位 10100
//		System.out.println(5>>2); //运行结果是 1
//		System.out.println(-5>>>2);
		// >> 和 << 算术移位,带符号位的 右移 和左移,不够补上 符号位(即是,正数右移,高位用0补,负数右移,高位用1补)
		// eg: 5  => 101  5>>2    5右移2位也就是 1  前面空的则由符号位 补齐,则是 001
		// eg: -5 => 101    取反:010,然后 +1 -5>>2  =》  最终: 011
		int i = -5;
		System.out.println(Integer.toBinaryString(i));       // 11111111111111111111111111111011
		System.out.println(Integer.toBinaryString(i >> 2));  // 11111111111111111111111111111110
		System.out.println(i >> 2);

		System.out.println("-----------------------");
		// >>> 和 <<< 逻辑移位,无符号位的 右移和左移, 带动符合移动,不够补0
		// 当负数使用无符号右移时,用0进行补位(自然而然的,就由负数变成了正数了)
		int k = 5; 
		System.out.println(Integer.toBinaryString(k));        // 101
		System.out.println(Integer.toBinaryString(k >>> 2));  // 1
		System.out.println( k >>> 2);                         // 1
		
		System.out.println("-----------------------");
		int m = -5; 
		System.out.println(Integer.toBinaryString(m));        // 11111111111111111111111111111011
		System.out.println(Integer.toBinaryString(m >>> 2));  // 111111111111111111111111111110
		System.out.println( m >>> 2);                         // 1073741822
	}
}

 

© 著作权归作者所有

共有 人打赏支持
pan_1308
粉丝 4
博文 95
码字总数 58819
作品 0
黄冈
大小端和移位运算

移位运算分为逻辑左移、逻辑右移、算术左移、算术右移 顾名思义:算术是有正负的。因此算术移位,关心符号位;而逻辑不管符号位。 1 算术左移(<<) 计算规则:按二进制形式把所有的数字向左移...

J_Stone
2016/04/17
174
0
运算器-计算机组成

运算器是计算机中执行各种算术和逻辑运算操作的部件。运算器的处理对象是数据,所以数据长度和计算机数据表示方法对运算器的性能影响极大。运算器的基本操作包括加、减、乘、除四则运算,与、...

冬弥
01/04
0
0
你们被什么概念问题阴过

如题,都说说,让我等菜鸟少走弯路。 比如移位运算竟然还有逻辑移位和算术移位之分。 再比如数据储存还有大端方式和小端方式之分。 请前辈指教。

870177103
2013/07/18
298
9
算术移位和逻辑移位

术语 arithmetic shift 算术移位 logical shift 逻辑移位 区别 移位后空缺的如何补充? Type Left Shift Right Shift Arithmetic Shift 补0 补符号位 Logical Shift 补0 补0 原文链接:http:...

长平狐
2012/08/28
114
0
汇编总结:左移,右移指令

1.左移指令和右称指令的种类及作用: 左移指令作用:左移指令将操作数的bit位向左移动n位,空出来的位用0填充。 左移指令包含sal和shl,这两条指令的作用是相同的,空出来的位用0填充。 其中左...

guonaihong
2015/09/26
2.4K
0

没有更多内容

加载失败,请刷新页面

加载更多

20180920 rzsz传输文件、用户和用户组相关配置文件与管理

利用rz、sz实现Linux与Windows互传文件 [root@centos01 ~]# yum install -y lrzsz # 安装工具sz test.txt # 弹出对话框,传递到选择的路径下rz # 回车后,会从对话框中选择对应的文件传递...

野雪球
今天
1
0
OSChina 周四乱弹 —— 毒蛇当辣条

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 达尔文:分享花澤香菜/前野智昭/小野大輔/井上喜久子的单曲《ミッション! 健?康?第?イチ》 《ミッション! 健?康?第?イチ》- 花澤香菜/前野智...

小小编辑
今天
7
3
java -jar运行内存设置

java -Xms64m #JVM启动时的初始堆大小 -Xmx128m #最大堆大小 -Xmn64m #年轻代的大小,其余的空间是老年代 -XX:MaxMetaspaceSize=128m # -XX:CompressedClassSpaceSize=6...

李玉长
今天
3
0
Spring | 手把手教你SSM最优雅的整合方式

HEY 本节主要内容为:基于Spring从0到1搭建一个web工程,适合初学者,Java初级开发者。欢迎与我交流。 MODULE 新建一个Maven工程。 不论你是什么工具,选这个就可以了,然后next,直至finis...

冯文议
今天
2
0
RxJS的另外四种实现方式(四)——性能最高的库(续)

接上一篇RxJS的另外四种实现方式(三)——性能最高的库 上一篇文章我展示了这个最高性能库的实现方法。下面我介绍一下这个性能提升的秘密。 首先,为了弄清楚Most库究竟为何如此快,我必须借...

一个灰
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部