文档章节

算术移位 和 逻辑移位

pan_1308
 pan_1308
发布于 2017/05/19 14:10
字数 226
阅读 27
收藏 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
	}
}

 

© 著作权归作者所有

共有 人打赏支持
下一篇: nginx_(1)
pan_1308
粉丝 5
博文 95
码字总数 58819
作品 0
黄冈
私信 提问
大小端和移位运算

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

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

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

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

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

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

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

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

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

guonaihong
2015/09/26
2.4K
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周二乱弹 —— 以后我偷小鱼干养你

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @庞巴哥 :只有这节奏瞬间变得轻松。。。。。。。。。分享Talking Eyes的单曲《In the sun (Extended Version)》: 《In the sun (Extended Ve...

小小编辑
55分钟前
2
0
多表查询

第1章 多表关系实战 1.1 实战1:省和市  方案1:多张表,一对多  方案2:一张表,自关联一对多 1.2 实战2:用户和角色 (比如演员和扮演人物)  多对多关系 1.3 实战3:角色和权限 (比如...

stars永恒
今天
7
0
求推广,德邦快递坑人!!!!

完全没想好怎么来吐槽自己这次苦逼的德邦物流过程了,只好来记一个流水账。 从寄快递开始: 2019年1月15日从 德邦物流 微信小app上下单,截图如下: 可笑的是什么,我预约的是17号上门收件,...

o0无忧亦无怖
昨天
10
0
Mac Vim配置

1.升级 vim   我自己 MacBook Pro 的系统还是 10.11 ,其自带的 vim 版本为 7.3 ,我们将其升至最新版: 使用 homebrew : brew install vim --with-lua --with-override-system-vim 这将下...

Pasenger
昨天
9
0
vmware安装Ubuntu上不了网?上网了安装不了net-tools,无法执行ifconfig?

1.重新设置网络适配器还是不行,如下指定nat 2.还需要指定共享网络,我是在无线环境下 3.无法执行ifconfig https://packages.ubuntu.com/bionic/net-tools到这个网站下载net-tools的deb文件...

noob_chr
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部