首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

-1除以2如何得到-1?(按位运算>>)

-1除以2可以通过右移一位(按位运算符>>)来得到-1。

按位运算符>>是一种位运算符,用于将一个数的二进制表示向右移动指定的位数。对于有符号整数,右移操作会保留符号位,即负数仍然是负数。所以,对于-1除以2,可以使用右移一位操作来得到结果。

具体步骤如下:

  1. 将-1的二进制表示转换为补码形式。对于有符号整数,最高位为1表示负数,其余位表示数值的绝对值。-1的二进制表示为全1的补码形式,即11111111。
  2. 对补码进行右移一位操作。右移操作将所有位向右移动一位,最高位的符号位保持不变。右移一位后,补码变为11111110。
  3. 将右移后的补码转换回原码形式。对于负数,将补码减去1并取反即可得到原码。11111110减去1得到11111101,再取反得到10000010。
  4. 将得到的原码转换为十进制数。10000010的原码表示为-2。

所以,-1除以2的结果为-2。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云计算服务:https://cloud.tencent.com/product
  • 腾讯云数据库:https://cloud.tencent.com/product/cdb
  • 腾讯云服务器:https://cloud.tencent.com/product/cvm
  • 腾讯云人工智能:https://cloud.tencent.com/product/ai
  • 腾讯云物联网:https://cloud.tencent.com/product/iot
  • 腾讯云移动开发:https://cloud.tencent.com/product/mad
  • 腾讯云存储:https://cloud.tencent.com/product/cos
  • 腾讯云区块链:https://cloud.tencent.com/product/baas
  • 腾讯云元宇宙:https://cloud.tencent.com/product/mu
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

1+1=2如何运算

计算机,计算两个字才是关键,那么作为JVM也需要去进行计算,最简单的计算莫过于加减乘除,下面看一下加减乘除的具体指令有哪些,文章的结尾我们也会给出1+1=2运算过程。...,ddiv 求余指令:irem,lrem,frem,drem 取反指令:ineg,lneg,fneg,dneg 位移指令:ishl,ishr,iushr,lshl,lshr,lushr 或指令:ior...,lor 与指令:iand,land 异或指令:ixor,lxor 局部变量自增指令:iinc 比较指令:dcmpg,dcmpl,fcmpg,fcmpg,lcmpg 当进行除法和求余计算时,如果除数为...double -> int d2l:double -> long d2f:double -> float int或者long类型的窄化只需要将最高的几位丢弃,保留最低的N(N为转换后的数据类型长度)即可...1+1=2 public class ClassTest { public int add(int a, int b) { return a + b; } } 我们看一反编译后的

93720

1-1 Java基础-运算

1-1 Java基础-运算 什么是运算?...一个字节=8二进制 1k=1024字节 1k=1024*8二进制 运算其实就是移位运算,将内存里面的二进制进行移位 比如二进制=101向右移1 010|1 移位之后的1其实已经不被计算在内了..., 变成内存里面的垃圾 在java中,一个int数值类型有32二进制 1是符号,从2的0次方开始算起,数值的范围为 [−232,231−1][-2^{32},2^{31}-1][−232,231...−1] Java的运算 带符号运算 <<左移就是向左移一,比如101左移1 101 1010 向后补0 >>右移就是向右移一 101 0101 记住这是带符号的移位 无符号运算...−3-3−3变成了 230+21=21474836462^{30} + 2^{1}=2147483646230+21=2147483646 便于观察我们可以将-3无符号左移31 1 0000 0000

53020

J 神提问:除以 2 还是右移 1

最终,每个方法实际上都仅仅使用了一个字节码来操作相关联的整型数运算。它们都使用了 v1 寄存器来保存第一个方法参数,另外还需要一个字面量 1 或者 2。...在 Android 10 Pixel4 的设备上执行相同的指令,来看看 ART 是如何将代码编译成 ARM 汇编代码的。...到此为止,我们可以肯定的说,使用 value > 1 来代替 value / 2 不会带来任何好处。停止在算数运算中做这样的事情吧,仅在严格要求运算的情况下保留。...在 Android 上,选择 除以2 还是 右移1 ? 都不是!仅在实际需要按操作时使用移位运算,其他数学运算使用乘除法。我将着手将 AndroidX collection 的运算切换到乘除法。

1.1K20

1的个数 逻辑运算

逻辑运算运算就是对二进制数执行计算,是整数的逐运算。 图片.png & 与 如果两个相应的二进制都为1,则该位的结果值为1,否则为0。...| 或 两个相应的二进制中只要有一个为1,该位的结果值为1。 ^ 异或 若参加运算的两个二进制值相同则为0,否则为1。...~ 取反 ~是一元运算符,用来对一个二进制数取反,即将0变1,将1。 << 左移 用来将一个数的各二进制全部左移N,右补0。...进阶:如果多次调用这个函数,你将如何优化你的算法?...思路及解法 循环检查 1.循环检查给定的整数每一是否为12.将n跟给定的对应位置上的数字进行与运算,如果两个相应的二进制都为1,则该位的结果值为1,结果加1,否则为0。

79130

O(1)时间检测2的幂次除以2统计1的位数n和n-1取且

用 O(1) 时间检测整数 n 是否是 2 的幂次。 样例 n=4,返回 true; n=5,返回 false. 除以2 这个当然是很简单也最容易想到,int的话可能要除31次才能出来。...n有符号数的表示范围: -2^n-- 2^(n-1)-1 原码的表示:     左边是符号,正数为0,负数为1。...    【+0】反码 = 00000000     【-0】反码 = 11111111   补码的表示:     正数的补码与原码相同,负数的补码由原码的反码加1得到     【+10】补码...再如,将3点的时针调慢一个小时,即调成2点,和将时针向前调整11个小时的效果是一样的。因此用3-1和(3+11)mod(12)的结果一样。补码在机器码中的运用主要是用加法元算代替减法运算。...在8字中,我们的模就是2的8次方,即256。

58330

运算运算的技巧、二进制中1的个数、区间或、异或森林)

右移相当于对原数进行除以2的幂次方的操作 例如,对于整数13(二进制表示为00001101),执行左移2操作,相当于执行13/4向下取整。...1.3、操作符 &    与:只要有0就是0,两个同时为1才是1。 |     或:只要有1就是1,两个同时为0才是0。 ^    异或:相同为0,相异为1。...~    取反:将一个数的二进制0取11取0,之后再加一。...int main() { int a = 3; int b = -5; int c = a & b; /*(二进制)运算 计算规则:对应二进制进行与运算 只要有0就是0,两个同时为...肖恩进入了这片森林,他得到了一个任务:找出数组中满足条件的连续子数组,使得连续子数组中所有元素异或运算结果的因数个数为偶数。完成任务将揭示宝藏的所在地。

23410

Datawhale组队学习 -- Task 1:变量、运算符、数据类型及运算

true print(not (2 > 1)) # not相当于取反,结果为true加上not就输出反向结果 结果 运算符 符号 操作符 名称 示例 ~ 取反 ~4 & 与 4 &...5 | 或 4 | 5 ^ 异或 4 ^ 5 << 左移 4 << 2 >> 右移 4 >> 2 取反(~) 取反运算符~为单目运算符(只有一个操作数),右结合性,作用是对参与运算的二进制取反...(|) 运算符|的运算规则是:两个二进制有一个为 1 时,结果就为 1,两个都为 0 时结果才为 0。...(^) 异或运算^的运算规则是:参与运算的两个二进制不同时,结果为 1,相同时结果为 0。...在内存中的存储) 上面两个可以看出9>>3高位丢的0就补0,(-9)>>3丢的1就补1 如果被丢弃的低位不包含 1,那么右移 n 位相当于除以 2 的 n 次方(但被移除的中经常会包含 1)。

29160

JS是如何计算 1+1=2 的?

我问计算机芸芸部件,1+1究竟是如何计算的,他们都茫然的看着我。...作者问浏览器:“你小子是怎么知道1+1等于2的?纵观人类进化史,从学会使用石头,到学会结绳记数,用了100万年。你年纪轻轻28岁,是怎么知道1+1等于2的?”...这时CPU听到有人叫他的名字,耐不住了。CPU问:“谁在说俺的大名!v8,那后面的'mov eax,1'是什么?我怎么从来没见你提过?”...例如他看到指令是010100010010,首先从前40101判断,这是一个寄存器设置命令,于是就打电话通知寄存器老头来领取数据包裹;如果看到前4是1010,就知道这是一个加法指令,就打电话通知算术运算单位的加法器来领取数据和任务...所以,我的加法运算能力也不是无限的,能算多大数字是由硬件决定的。” 这下明白了,CPU并不知道1+1等于2。之所以1+1能算出等于2,是人类在设计CPU的时候赋能给它的。

1.8K20

为什么补码是取反加一_补码为什么加1

因为你想要的,不是1+1=2,而是,1+1为什么等于2。当然,我们不讨论1+1的问题。我们讨论的,是补码。...但是呢,还有一个问题,为什么补码的求法是取反再加一呢,其实当你不明白为什么各大书籍都要用取反来计算补码的时候,我们完全可以直接用0减去它就得到他相反数的二进制编码了,譬如随便一个十六进制数 6C...,那么我们可以直接0-6C就得到他的相反数的补码了,结果为十六进制的94,跟取反再加一的效果一样。...,你发现了之前一直迷惑你的一个东西,“取反再加一”,但是可能还有一点迷惑,我们继续,因为我们每次都是用一个0减去一个数的补码来得到另一个数的补码,也就是里面的(11111111+00000001)是不变的...– 一个数的补码)换成 “取反”,也就是 (取反)+000000001=它相反数的补码,现在,取反,再加一,就终于出来了,这就是各大书籍资料所讲的,补码=取反+1..。

60410

1 课:计算机是如何计算 1+1=2 的?

对于初学者,我们只需要考虑一个问题:计算机是如何计算 1+1=2 的? 正文 这个问题看似简单,但通过它可以见微知著。所有表面上复杂的软件运行,都是底层简单的节字叠加。...现在我们仅以 JS——JavaScript 的简写,来探究计算机是如何计算 1+1=2 的? 首先,打开谷歌浏览器,右健单击空白处,选择 “检查”: ?...现在在 Console 面板输入我们的算式: 1+1 下回车键。 我们看到浏览器输出了 2: ? 这个过程看起来很快,但计算机内部其实已经经过 N 多复杂的运算操作。...例如,他看到指令是「010100010010」,首先从前 4 0101 判断,这是一个寄存器设置命令,于是就打电话通知寄存器老头来领取数据包裹;如果看到前 4 是 1010,就知道这是一个加法指令...笔者道,这下明白了,CPU 并不知道 1+1 等于 2,之所以 1+1 能算出等于 2,是人类在设计 CPU 的时候赋能给它的。而 CPU 内所有逻辑的运算,归根结底又都是开关的开合。

1.8K20

力扣题(2的幂)——学习到JAVA与“&”在“n&(n-1)”中的使用

如上图,求一个数是不是2的幂,一行代码解决。 那么,(n & (n-1)) == 0是什么意思呢 java中“&”表示与操作,他把左右变为二进制然后取与。...“n=n&(n-1)”的意思就是 去掉“n的二进制”的最后一个1. 如果A&B==0,表示A与B的二进制形式没有在同一个位置都为1的时候。 这句话到底啥意思??不妨先看下n-1是什么意思。...n&(n-1)=1101010000 由此可以得出,n和n-1的低位不一样,直到有个转折点,就是借位的那个点,从这个点开始的高位,n和n-1都一样,如果高位一样这就造成一个问题,就是n和n-1在相同的上可能会有同一个...1,从而使((n & (n-1)) !...= 0),如果想要 ((n & (n-1)) == 0),则高位必须全为0,这样就没有相同的1。 所以n是2的幂或0

51640

运算–LC191– 1的个数___LC231–2的幂___LC190– 颠倒二进制__LC338– 比特计数

运算的由来 在计算机里面,任何数据最终都是用数字来表示的(不管是我们平时用的软件,看的图片,视频,还是文字)。 并且计算机运算单元只认识高低电位,转化成我们认识的逻辑,也就是 0 1 。...示例 1: 输入: 1 输出: true 解释: 2^0 = 1 示例 2: 输入: 16 输出: true 解释: 2^4 = 16 解题: 由于是2的幂 由二进制的以得到: 16 的 二进制为 0001...示例 1: 输入: 2 输出: [0,1,1] 示例 2: 输入: 5 输出: [0,1,1,2,1,2] 方法一:直接计算 最直观的方法是对从 00 到 num 的每个数直接计算「一比特数」。...每个 int 型的数都可以用 32 二进制数表示,只要遍历其二进制表示的每一即可得到 1 的数目。 利用运算的技巧,可以在一定程度上提升计算速度。...运算(&)的一个性质是:对于任意整数 x,令 x=x&(x−1),该运算将 x 的二进制表示的最后一个 1 变成 0。

45110

二进制中 1 的个数 ——《CC++ 运算黑科技 03》

原理 计算一个二进制数中 1 的出现次数其实很简单,只需要不断用 v & (v - 1) 移除掉最后一个 1 即可,原理可以参考这篇文章:2 的幂次方 ——《C/C++ 运算黑科技 02》 上述方法是一个普通的思考方向...1 & 0x5555 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 = 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 然后两者相加就得到了相邻 2 个计数器的合并计数...00 00 00 01 00 10 然后两者相加就得到了相邻 4 个计数器的合并计数:0011000100100011,然后我们在以 4 个比特为单位来继续合并计数器 Val 0011 0001 0010...Data 64 KiB (x8) L1 Instruction 128 KiB (x8) L2 Unified 4096 KiB (x2) Load Average: 2.64, 2.22, 1.79...Data 32 KiB (x6) L1 Instruction 32 KiB (x6) L2 Unified 256 KiB (x6) L3 Unified 9216 KiB (x1) Load

81321

Zenlayer合并大河云联的背后:1+1如何大于2

据全球市场研究机构Gartner预测,2016年-2020年全球SD-WAN市场复合增长率高达57.4%;2018年,企业部署SD-WAN的服务规模从2015年的不足1%增长到30%。...2019年1月Zenlayer正式成为首批通过可信云SD-WAN解决方案认证的服务商,而此次并购能够进一步增强Zenlayer的研发能力和技术规范,有望为整个行业提供更多标杆性的优秀产品与解决方案,积极推动云网融合的发展与落地...1+1如何大于2? 此次并购,对Zenlayer而言是一个崭新的开始。...但与此同时,各路玩家纷纷挤进赛道,试图在这一领域分一杯羹,拿得一手好牌的Zenlayer能否发挥1+1>2的优势,在后续的发展中激流勇进,这将充分考验Zenlayer的业务整合速度、战略眼光以及超强的执行力

86610

智能运维如何实现1+1>2

如何改变这种局面?近年来,智能运维异军突起,成为解救企业和运维人员的及时雨。...1 运维为何就这么难 在当下,很多企业经过多年数字化建设,通过整合监控与告警、与ITSM集成、自动化运维,基本建成了包含“监控、管理、控制”三大维度的运维体系。...Gartner就预测设备和应用程序所产生的数据量正以每年2-3倍的速度增长,且数据类型多样。...2 如何让智能运维1+1>2 爱数与听云在智能运维领域开启了新模式。今年1月份,双方携手正式推出了智能运维整合方案,旨在帮助客户全面管理、深度洞察海量、多源、异构的机器数据。...未来,随着企业数字化转型的深入,以及像爱数、听云这些中国智能运维厂商利用生态不断完善联合解决方案,中国用户有望得到更加出色的智能运维产品与服务。

66720
领券