无符号右移一个负数会得到什么结果?

打开LWIP_DEBUG的打印信息调试 在lwip 2.1.2的版本,打开的debug 调试的步骤: 1.在debug.h 文件中找到debug打印的定义 默认LWIP_DEBUG这个宏没有定义, 2.在lwipopt.h 文件中或者其他文件定义 一下LWIP_DEBUG这个宏, 3.在opt.h 中可以打开各种宏的调试信息, /* --------------------------------------- ---------- Debugging options ---------- ---------... 阅读详情

前言

最近看JDK源码发现代码中竟然会出现无符号右移负数的形式,很有意思。

正文

比如在util包中RegularEnumSet类的第54行:

java.util.RegularEnumSet

class RegularEnumSet<E extends Enum<E>> extends EnumSet<E> {
	...
	void addAll() {
        if (universe.length != 0)
            elements = -1L >>> -universe.length;//第54行
	}
    ...
 }

这行代码实在有趣,我之前从没有想过一个数经过无符号右移负数会是什么结果
为了看结果,我写了如下测试代码:

public class Demo {
	public static void main(String[] args) {
		long l = -1l;
		System.out.println(l>>>-3);
	}
}

上述代码运行的结果是7(二进制:111),而一个64个1的二进制数(-1L),右移61位即可得到111,由此可知右移-3位相当于右移61位。

但具体的规则有待研究,待找到官方解释就贴上来。

(南京观海微电子)——TCON介绍 TCON又称:逻辑板,控制板,在液晶电视里的作用和CRT中的视放板相当,但有本质的区别,逻辑板不是一个纯粹的信号放大器,它输入是LVDS格式信号,而不是RGB。逻辑板的作用是把数字板送来的LVDS或TTL图像数据信号,时钟信号进行处理移位寄存器存储将图像数据信号,时钟信号转换成屏能够识别的控制信号行列信号RSDS控制屏内的MOSFET管工作而控制液晶分子的扭曲度。目前国内主要的TCON板生产商有视显光电。传统TCON的布局主要分为以下两种:X+C分离式和X+C一体式。 阅读详情

相关推荐

WSL2不能上网,Failed to connect to github.com port 443问题解决方案

WSL2不能上网: 问题:ping外网无效 例如:ping www.baidu.com失败 解决方案: 在wsl: $sudo vi /etc/wsl.conf wsl.conf: [network] generateResolvConf = false 在PowerShell: $sudo vi /etc/etc/resolv.conf resolv.conf: # This file was automatically generated by WSL. To stop automatic gen

Jason_Chen__的博客 9525

运算符 左移<<, 右移>>, 无符号右移>>>

1、 左移运算符   左移运算符   1)通用格式   value   num 指定要移位值value 移动的位数。   左移的规则只记住一点:丢弃最高位,0补最低位   如果移动的位数超过了该类型的最大位数,那么编译器会对移动的位数取模。如对int型移动33位,实际上只移动了33%32=1位。   2)运算规则   按二进制形式把所有的数字向左移动对应的位数,高位移出(

xianymo的专栏 2062

【Get深一度】小波分析概念1——紧支撑集是什么意思,通俗解释

最近学到小波,在仿真中也用到了紧支撑函数;紧支撑性越好,说明能量越集中;用最通俗的话来讲,紧支撑是这样的: 对于函数f(x),如果自变量x在 0附近的取值范围内,f(x)能取到 C; 而在此之外,f(x)取值为 0; 那么这个函数f(x)就是紧支

Trey_优快云 的优快云博客 8348

无符号右移-1?关于Java位移,多数人不知道的

之前看java源码的时候,看到有一个语句,整型无符号右移一个负数(如1024>>-22),当时惊呼:“还有这种操作,老师没教过啊”,老师确实没教过! 当时网上查了一下,发现:对于int类型,移位操作只关注移位参数转换成二进制后对应的后5位(bit);long则只关注后6位。 举个栗子: Syste...

weixin_34247155的博客 411

解决西门子Step 7 basic 找不到许可证问题

你在使用博图软件是否遇到过Step 7 basic 找不到许可证的问题呢!不言怕,今天我就来告诉你该如何处理吧!看步骤: 1.删除原授权的License: 打开Automation License Manager应用,然后我们可以发现仅有的License Key前面有一个时钟,说明它已经过期不可用,我们就要去寻求新的Key. 打开“我的电脑”,选择C盘,点击上方查看 点击选项–>查看 然...

让技术没有门槛 14万+

Calibre LVS效率翻倍秘籍:用Hierarchical Flow处理亿级晶体管设计的5个关键阶段

本文详细解析了如何利用Hierarchical Flow技术提升Calibre LVS在亿级晶体管SoC设计中的验证效率。通过五个关键阶段的分层验证流程,包括顶层抽象验证、模块级独立验证等,可显著降低内存占用40-60%,缩短迭代周期50-70%,特别适用于SMIC等先进工艺节点。文章还分享了算力资源优化、并行化处理等实战技巧,帮助工程师应对大规模芯片验证挑战。

sam99的博客 768

关于Java运算符的含义:左移、右移、无符号右移、位与、位或、位非、位异或

一、左移( &amp;lt;&amp;lt; ) 形式:a&amp;lt;&amp;lt;b 含义:将a的数值在二进制下向左移动b个位置 示例:5&amp;lt;&amp;lt;2 //原数值 0000 0101 //左移后 0001 0100 二、右移( &amp;gt;&amp;gt; ) 形式:a&amp;gt;&amp;gt;b 含义:将a的数值在二进制下向右移动b个位置 示例:5&amp;gt;&am

天射手座的博客 1041

基础入门篇 | YOLOv8 项目【训练】【验证】【推理】最简单教程 | YOLOv8必看 | 最新更新,直接打印 FPS,mAP50,75,95

三个文件搞定YOLOv8【训练】【验证】【推理】🚀🚀🚀

Coding... 2万+

为什么右移有「有无」符号之别,而左移却没有?

在众多语言中,都提供了关于位操作符,但 **为什么右移有“有无”符号之别,而左移却没有?**,本文一步步讲述左移、有符号右移、无符号右移,以此来揭开位移的面纱,最终探究答案,囿于本人知识与能力,如有纰漏,敬请指出!

YopenLang的博客 2553

YOLOv11改进 | 检测头篇 | 利用动态蛇形卷积DySnakeConv改进yolov11分割检测头(全网独家首发,Segment)

本文给大家带来的最新改进机制是一种我进行优化的专用于分割的检测头,在分割的过程中,最困难的无非就是边缘的检测,动态蛇形卷积(Dynamic Snake Convolution)通过自适应地聚焦于细长和迂回的局部结构,准确地捕捉管状结构的特征。这种卷积方法的核心思想是,通过动态形状的卷积核来增强感知能力,针对管状结构的特征提取进行优化,所以将这个卷积针对于YOLOv11的分割头进行融合是非常合适的,当然本文的检测头也支持用于目标检测,但是我将其设计出来是主要为了分割的读者使用的。

Snu77的博客 3426

【RT-DETR涨点改进】全网独家-特征融合改进篇 | AAAI 2025 顶会| 高效涨点,RT-DETR利用CDFA对比度特征聚合模块,适用于目标检查(全网独家创新)

本文提出了一种基于CDFA模块的多级特征融合优化RT-DETR模型,用于解决医学图像分割中的软边界模糊、小目标和共现现象等问题。CDFA模块通过对比度特征聚合、局部特征增强和多级注意力机制,有效提升模型性能。研究提供了三种改进方案(rtdetr-r18/y50/l-CDFA),并在多个医学数据集上验证了其有效性。核心创新包括语义信息解耦、对比驱动特征融合和尺寸感知解码器。实验结果表明,该方法在分割精度和鲁棒性方面达到SOTA水平。

Ai缝合怪、助力小伙伴高效发论文 509

关于负数的右移与无符号右移运算小结

对于带符号右移,若为负数,则在存储时首位表示符号位,其值为1,表示该值是负数的移位,在移位过程中,高位补1,若符号位是0,表示是正数,在移位过程中高位补零,两者的前提是符号位保持不变: 对于负数的右移:因为负数在内存中是以补码形式存在的,所有首先根据负数的原码求出负数的补码(符号位不变,其余位按照原码取反加1),然后保证**符号位不变**,其余位向右移动到X位,在移动的过程中,高位补1.等移位完成以后,然后保持符号位不变,其余按位取反加1,得到移位后所对应数的原码。即为所求。 举例...

正儿八经的胡说八道的博客 2715

(第100天)Oracle GoldenGate 常见故障处理指南

OGG 运维的核心在于细致的配置管理和主动的问题排查。熟悉常见错误、掌握关键操作流程、并善用日志和调试工具,是保障数据同步任务稳定运行的关键。希望这份指南能帮助您更高效地解决 OGG 同步中遇到的问题。祝您运维顺利!

LuciferLiu_DBA 300

无符号右移负数_两个无符号数相加判断结果是否溢出

给定两个无符号整数 和 ,判断 是否溢出?给定两个有符号整数 和 ,判断 是否溢出?(以后再写答案,没忘记的话:)========更新 2020-5-1无符号整数加法:我们定义 为计算机上无符号整数之间的加法,以区别普通的数学意义上的无限精度的整数加法。设 是两个 位的无符号整数,则无符号整数加法计算规则如下: 由上述公式可以知道,无符号整数的加法相当于直接把数学意义上的整数和 ...

weixin_39766071的博客 297

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

有符号右移>>,无符号右移>>>

计算机表示数字正负不是用+ -加减号来表示,而是用最高位数字来表示,0表示正,1表示负 1.有符号右移>>(若正数,高位补0,负数,高位补1) 正数:例如4>>2 首先写出4的二进制数,因为是正数所以最高位为0,也就是第一个 0000 0000 0000 0000 0000 0000 0000 0100 右移两位得到(高位补0) 000000 0000 0000...

lzhh0815的博客 3279

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

java负数右移_java中左移、右移和无符号右移

我们在看某些jdk的源码时经常能看到">>"(右移)、"<>>"(无符号右移),比如下面这段1550050893(1).jpg它们经常被用来扩充动态集合的大小,下面我们看段代码看下">>"、"<>>"都做了什么操作。我们写下面这段代码,先看左移public class Main2 {public static void main(Stri...

weixin_39603588的博客 310

二进制正负数转换和移位的规则详解

二进制整数都是以补码的形式出现的 正数的原码、反码、补码都相同 负数的反码就是正数的原码先把最高位变为1然后其余的位取反 负数的补码就是该负数的反码加1。

m0_51743165的博客 5317

负数的左右位移运算和无符号位移,>>,>>>

上一篇讲了关于电脑怎么进行加减运算,勾起了好奇心,又去看了一下二进制的位移运算.以前我一直以为位移运算就是乘以或除以2的次方的一种快速运算方式,今天一看还真不是那么回事. 首先如果是一个正数进行位移运算,因为正数的补数是它自己,所以符合我之前的理解,就是乘以或除以2的次方,而且因为多出的位数都是用0填充,所以>>和>>>运算出来的结果是一样的.但是负数进行运算就不一样...

weixin_44958476的博客 767

java负数右移_java基础补充-负数右移运算测试

-让每个人平等地提升自我!1//负数右移运算测试示例:publicclassZF{publicstaticvoidmain(String[]args){intx=-5;inty=x>>1;intz=x>>>1;System.out.println("x="+x+"y="+y+"z="+z);}}//1、当x=-5时,右移1位后,问y和z的值是...

weixin_34696080的博客 144

无符号位移和有符号位移

转载:https://blog.youkuaiyun.com/BushQiang/article/details/79394211            https://blog.youkuaiyun.com/qq_26129689/article/details/50640293 无符号位移(&gt;&gt;&gt;、&lt;&lt;&lt;)和有符号位移(&gt;&gt;、&lt;&lt;) 关于数的移位,特别...

世间所有的相遇都是久别重逢 3701

JAVA移位运算符-左移、右移、无符号右移 (简解)

java移位运算符:(带符号右移)和>>>(无符号右移)。

简单发点工作中用到的,或者记录下小知识点 4382

php 无符号位移怎么使用,PHP无符号右移 – 故障

因此,当使用我的方法在PHP中执行(>>>)无符号右移时,当数字涉及底片时结果不正确.PHP应用结果:INPUT: 10 >>> 3INPUT: -10 >>> 3OUTPUT: 1OUTPUT: 2684354558JAVA申请结果:INPUT: 10 >>> 3INPUT: -10 >>> 3OUTPUT...

weixin_30189559的博客 287

java 左移 右移 无符号右移

/** * 右移 &gt;&gt; 正数 * 0000 0000 0000 0000 0000 0000 0000 0101 * 0000 0000 0000 0000 0000 0000 0000 0000 */ System.out.println(5 &gt;&gt; 3);//结果为0 ...

博客 480

c语言负数左移右移_C语言左移和右移

事情的发生:某日工作中有个需求是将不同的数值存到char的前4位和后4位中。恰好同事中有同样取得32位int的前8位当成一个数值的代码://取得32位中的高八位组成的值#define U32_HIGH_8(val) ((val >> 24) & 0X000000FF)好奇心就来了,在右移24位以后是否还有必要再与上(&)0x000000FF将高位的数据彻底清零呢...

weixin_39834205的博客 1168

Java 左移运算<< 右移运算>> 以及独特的无符号右移运算(根据小题目来理解)

左移运算(<<) 把所有的位向左移动几位 正数左移的运算: 10 << 2 10的二进制数是 00001010 向左移动两位 (向左移动的两位直接删掉) 低位补0 结果是40 00101000 公式 M << N M*2的N次方 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IPt2owE9-1599812443940)(C:\Users\11978\Pictures\Saved Pictures\左移.png)]

逆风微笑的李同学的博客 1065

js中的 >>>0 位运算 解读

>> 和 >>> 的区别 >> :是有符号位运算。 >>> : 是无符号的位运算。 看示例 在chrome浏览器上的调试结果: 在 null 、undefined、 NaN 等非数值的位运算,统一返回正整数 0 如果对一个负数进行的>>>无符号位移运算的话,将负数的二进制码右移后,用 0 补上,最后产生一个很大的正整数。(0111111111111111...) 区别 而在其他语言上 无符号右移 0 位上的区别: //java

qq_41308489的博客 1886

关于位的操作 正数负数

JavaScript高级程序设计里面讲的很清楚 JavaScript里面的都是有符号整数 对于有符号位来说负数>> 右移时候就补1 左移时补0 C语言中位操作-3>>31值为什么是-1? C语言中位操作-3>>31值为什么是-1?请讲解下值为什么是-1?是把哪位向右移31位?是符号那位右移吗? -1是怎么得出的? 请讲解下具体得出的过程,谢谢右移操作时,连同符号位同时移动,且 符号位是1(负数)时,补1,符号位是0(正数)时补0。char a = -3(-...

PrestonL的博客 564
上一篇: 降级论
下一篇: 插入排序单链表 Java实现
coderALEX
博客等级 码龄11年 19粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值