文档章节

算术移位 和 逻辑移位

pan_1308
 pan_1308
发布于 2017/05/19 14:10
字数 226
阅读 24
收藏 0
点赞 0
评论 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
博文 84
码字总数 58819
作品 0
黄冈
运算器-计算机组成

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

冬弥
01/04
0
0
大小端和移位运算

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

J_Stone
2016/04/17
174
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
ARM指令集详解(超详细!带实例!)

转载:https://www.cnblogs.com/liujiahi/archive/2011/03/22/2196401.html 算术和逻辑指令 ADC : 带进位的加法 (Addition with Carry) ADC{条件}{S} , , 将把两个操作数加起来,并把结果放置...

zjy900507
03/08
0
0
补基础:自学:计算机科学导论 第四章 数据运算

4.1 逻辑运算:指那些应用于模式中的一个二进制位,或在两个模式中相应的两个二进制位的相同基本运算。 4.1.1 位层次上的逻辑运算 0 代表逻辑 假, 1 代表逻辑 真。 4种操作: 非(NOT):只...

soulpei
06/26
0
0
C语言中 位运算总结

位运算符包括 & 按位与, | 按位或 , ^ 按位异或 AND (位与&) OR ( 位或| ) XOR ( 位异或^ ) 1 & 1 = 1, 1 | 1 = 1, 1 ^ 1 = 0 1 & 0 = 0, 1 | 0 = 1, 1 ^ 0 = 1 0 & 1 = 0, 0 | 1 = 1,......

神迹难觅
2017/11/10
0
0
C语言的移位操作符

C语言的移位操作符 位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。位移位运算符分为左移和右移两种,均为双目运算符。第一运算对象是移位对象,第二个运算对象是所...

晨曦之光
2012/03/09
620
0
Python的二进制位运算

Python语言能够对整数进行逐位操作,它支持的运算符及含义如下所示: &:按位与 |:按位或 ^:按位异或 ~:取反 <<:左移 >>:右移 对于整型数据,各种位操作是对该数据的补码进行的(正数的...

zbing3
2013/02/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

NNS域名系统之域名竞拍

0x00 前言 其实在官方文档中已经对域名竞拍的过程有详细的描述,感兴趣的可以移步http://doc.neons.name/zh_CN/latest/nns_protocol.html#id30 此处查阅。 我这里主要对轻钱包开发中会用到的...

暖冰
今天
0
0
32.filter表案例 nat表应用 (iptables)

10.15 iptables filter表案例 10.16/10.17/10.18 iptables nat表应用 10.15 iptables filter表案例: ~1. 写一个具体的iptables小案例,需求是把80端口、22端口、21 端口放行。但是,22端口我...

王鑫linux
今天
0
0
shell中的函数&shell中的数组&告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析

影夜Linux
今天
0
0
Linux网络基础、Linux防火墙

Linux网络基础 ip addr 命令 :查看网口信息 ifconfig命令:查看网口信息,要比ip addr更明了一些 centos 7默认没安装ifconfig命令,可以使用yum install -y net-tools命令来安装。 ifconfig...

李超小牛子
今天
1
0
[机器学习]回归--Decision Tree Regression

CART决策树又称分类回归树,当数据集的因变量为连续性数值时,该树算法就是一个回归树,可以用叶节点观察的均值作为预测值;当数据集的因变量为离散型数值时,该树算法就是一个分类树,可以很...

wangxuwei
昨天
1
0
Redis做分布式无锁CAS的问题

因为Redis本身是单线程的,具备原子性,所以可以用来做分布式无锁的操作,但会有一点小问题。 public interface OrderService { public String getOrderNo();} public class OrderRe...

算法之名
昨天
10
0
143. Reorder List - LeetCode

Question 143. Reorder List Solution 题目大意:给一个链表,将这个列表分成前后两部分,后半部分反转,再将这两分链表的节点交替连接成一个新的链表 思路 :先将链表分成前后两部分,将后部...

yysue
昨天
1
0
数据结构与算法1

第一个代码,描述一个被称为BankAccount的类,该类模拟了银行中的账户操作。程序建立了一个开户金额,显示金额,存款,取款并显示余额。 主要的知识点联系为类的含义,构造函数,公有和私有。...

沉迷于编程的小菜菜
昨天
1
0
从为什么别的队伍总比你的快说起

在机场候检排队的时候,大多数情况下,别的队伍都要比自己所在的队伍快,并常常懊悔当初怎么没去那个队。 其实,最快的队伍只能有一个,而排队之前并不知道那个队快。所以,如果有六个队伍你...

我是菜鸟我骄傲
昨天
1
0
分布式事务常见的解决方案

随着互联网的发展,越来越多的多服务相互之间的调用,这时候就产生了一个问题,在单项目情况下很容易实现的事务控制(通过数据库的acid控制),变得不那么容易。 这时候就产生了多种方案: ...

小海bug
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部