运算符>>和>>>的区别

Java千百问_03基础语法(013)_>、>>、>>>有什么区别 点击进入_更多_Java千百问1、>、>>、>>>有什么区别了解java运算符看这里:java种的运算符都有哪些 了解java运算符优先级看这里:java运算符的优先级是怎样的 “>”属于关系运算符,而“>>”、”>>>”则按位运算符,看一下它们各自的含义: 运算符> 关系运算符,表示大于。 如:if(a>b)…结果是boolean类型。 运算符>> 按位运算符,表示右移。<<表示左移。 阅读详情

观摩ConcurrentHashMap底层代码的时候看到了这段代码:

 /**
     * Returns a power of two table size for the given desired capacity.
     * See Hackers Delight, sec 3.2
     */
    private static final int tableSizeFor(int c) {
        int n = c - 1;
        n |= n >>> 1;
        n |= n >>> 2;
        n |= n >>> 4;
        n |= n >>> 8;
        n |= n >>> 16;
        return (n < 0) ? 1 : (n >= MAXIMUM_CAPACITY) ? MAXIMUM_CAPACITY : n + 1;
    }

一开始没太看懂,后面发现等同于

n == n | n >>> 1;

>>表示是带符号的右移:按照二进制把数字右移指定数位,符号位为正补零,符号位负补一,低位直接移除。

>>>表示无符号的右移:按照二进制把数字右移指定数位,高位直接补零,低位移除。

区别:>>在传递时也把符号一起传递,比如+3、-2在传递再传出时依然是+3、-2,而使用>>>时就会统一变为3、2。带符号于无符号的差别就在此。

微信小程序 - 详细实现可移动悬浮按钮,全屏悬浮元素图标可拖动拖拽并自动吸附边缘,微信小程序实现悬浮球吸附边缘+计算靠边靠拢效果(详细代码,拖拽中途放手,靠左就自动跑到屏幕左侧,反之靠右跑到屏幕右侧) 微信小程序,vue2,vue3,微信小程序悬浮功能小按钮,自动吸附边缘效果,微信小程序之可拖动悬浮按钮的实现,如何实现靠近边缘自动吸住功能,小程序右下角的悬浮效果,实现可拖动悬浮图标,自动向两边靠拢,悬浮按钮的实现,微信小程序悬浮球效果,微信小程序(可拖动悬浮按钮)当靠近屏幕边缘时会磁吸靠近,如何实现全局悬浮按钮,悬浮球判断吸附在左右,全屏悬浮能拖着走,小程序怎么做悬浮图标靠近左右两侧能吸附住,悬浮菜单按钮,悬浮球可拖拽,全局悬浮球,全局悬浮框,实现悬浮按钮可拖动,自动吸附边缘效果,若按钮此时位于页面中间偏 阅读详情

相关推荐

经典烧脑算法逻辑题--高楼扔鸡蛋:最少次数测出鸡蛋摔碎临界点。

如果在第2层没碎,换到第3层扔.......如果第59层没碎,换到第60层扔;有2个鸡蛋,从100层楼上往下扔,以此来测试鸡蛋的硬度。比如鸡蛋在第9层没有摔碎,在第10层摔碎了,那么鸡蛋不会摔碎的临界点就是9层。因此,我们尝试每10层扔一次,第一次从10层扔,第二次从20层扔,第三次从30层......一直扔到100层。如果第一枚鸡蛋,在50层碎了,第二枚鸡蛋,就从第1层开始扔,一层一层增长,一直扔到第49层。如果第一枚鸡蛋在50层没碎了,则继续使用二分法,在剩余楼层的一半(75层)往下扔。

借雨醉东风的博客 1818

原码,反码和补码

本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希望本文对大家学习计算机基础有所帮助!   一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1、机器数 一个数在计算机中的二进制表示形式,  叫做这个数的...

liuzhifuabc的专栏 2582

避开PSRR仿真三大坑:用Cadence psspxf分析分频器时,这些设置错了白忙活

本文深入探讨了使用Cadence psspxf工具进行分频器PSRR仿真时常见的三大技术陷阱,包括扰动信号参数设置、收敛性优化和后处理信号提取。通过详细的参数推荐和实战技巧,帮助工程师避免仿真误差,提升PSRR分析效率与准确性,特别适用于16分频器等数字-模拟混合电路设计。

weixin_29258297的博客 300

关于>、>>、>>>的含义及区别

本文主要介绍Java运算符&gt;、&gt;&gt;、&gt;&gt;&gt;三者的含义及区别 1、&gt;:表示大于(是一种比较运算符),比较两者大小,返回值为boolean类型。如 5&gt;6值为false 2、&gt;&gt;:表示带符号右移(是一种位运算符)      如:(1):0110(6)&lt;&lt;1     等于0011(3)             (2):0...

weixin_40841731的博客 2万+

IPV6基本配置

IPV6配置,DHCPV6,华为模拟器,IPV6的M/O标志位

路漫漫其修远兮 4665

RT-Thread Studio使用笔记(四):带片外Flash(W25Q128)的OTA(YModem)

前言 在学习OTA之前,请先参考上两篇博客写的关于SPI设备及W25Q128的使用方法,传送门: https://blog.youkuaiyun.com/tigerots/article/details/107423633 https://blog.youkuaiyun.com/tigerots/article/details/107933991 如何使用OTA 一. 制作BootLoader 打开Bootloader 在线获取地址,注册,并根据RT-thread官方文档生成BootLoader,官方文档已经写的很清楚,再此

tigerots的专栏 4008

Java 中 >>、>>>、^、&、|

原文 Java>>与>>>的区别 >>:带符号右移,也叫算术移位。正数右移高位补0,负数右移高位补1。比如: 4 >> 1,结果是2;-4 >> 1,结果是-2。-2 >> 1,结果是-1。 >>>:无符号右移,也叫逻辑移位。无论是正数还是负数,高位通通补0。 4 >>>1,结果是2;-4 >>> 1,结果是2,147,483,646。-2 >>> 1,结果是2,147,483,647,2

ss810540895的博客 1906

手把手教你学pcie--内存管理和保护机制(一):MPU与其他内存管理和保护机制详解

MPU(Memory Protection Unit)是一种专门用于 ​。,这些机制通常协同工作,形成多层防御体系,兼顾安全性、性能和灵活性。

MHD0815的博客 279

一文搞定>>、<<、>>>等位运算

位运算在我们平时开发中很少会用到,以至于它被大多数人所忽略,因此在面试题中能频繁的看到位运算的身影。 由于位运算本质是二进制运算,大多数开发者可能会对此比较陌生,本文旨在揭开位运算的神秘面纱,一同探究其本质,帮助大家掌握位运算的方法。

coder__wang的博客 1085

华为OD机试双机位A卷 - 小明减肥 (C++ & Python & JAVA & JS & GO)

华为OD机试2025双机位A卷 小明减肥,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解

qq_45776114的博客 705

QT自制TCP服务器

TCP服务器 网络调试助手

大脑曝光 3626

Java中的<<、>>、>>>运算符

二进制中的原码、反码、补码 有符号数: 对于有符号数而言,符号的正、负机器是无法识别的,但由于“正、负”恰好是两种截然不同的状态,如果用“0”表示“正”,用“1”表示“负”,这样符号也被数字化了,并且规定将它放在有效数字的前面,即组成了有符号数。所以,在二进制中使用最高位(第一位)来表示符号,最高位是0,表示正数;最高位是1,表示负数。 100000000000000001111100 无符号数: 无符号数是针对二进制来讲的,无符号数的表数范围是非负数。全部二进制均代表数值(所有位都用于表示数的大小)

qq_43842093的博客 5712

Debian Buster 软件源失效问题

摘要:基于Debian Buster的ARM64设备因系统版本结束支持(EOL)导致apt update报错404。解决方案包括:1)改用Debian官方存档源(需禁用安全检查);2)升级至受支持的Debian 11/12版本(推荐);3)临时使用第三方镜像源(不推荐)。操作步骤涉及修改sources.list、处理NTP同步问题及清理残留配置。建议优先采用版本升级方案以获得持续安全更新,避免使用过时系统带来的安全隐患。文中提供了完整命令示例和操作记录供参考。

yy_xzz的博客 2179

Java中位运算符>>和>>>的区别

转载自http://www.pianshen.com/article/5201172720/

lx8486的博客 339

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

运算符>>和>>>有什么区别

运算符&gt;&gt;和&gt;&gt;&gt;有什么区别       1、&gt;&gt;表示是带符号的右移: 按照二进制把数字右移指定数位,高位如符号位为正补零,符号位负补一,低位直接移除 2、&gt;&gt;&gt;表示无符号的右移: 按照二进制把数字右移指定数位,高位直接补零,低位移除。// java语言...

judongbin123的博客 2372

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

右移运算符>>和>>>的区别

1. >>>是不带符号的右移运算符,将运算符左边的对象向右移动运算符指定的位数,并且在高位补0。 2.>>   是带符号的右移运算符,将运算符左边的对象向右移动运算符指定的位数。如果是正数,高位补0;如果是负数,则在高位补1。

MaggieMiaoMiao的博客 980

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

位运算:运算符>>>和>>的区别

运算符 >> n (右移) 代表为对于数m向右移动n位,右边的n位舍弃,如果m为正数,左边的补0,负数补1 运算符 >>>n (无符号位右移) 代表为对于数m向右移动n位,右边的n位舍弃,左边的补0 public class 运算符区别 { public static void main(String[] args) { int n...

wvdon 432

java中右移运算符>>和无符号右移运算符>>>的区别

在做一个pcm音频时遇到了这个符,但是我看有些百度的地方的解释都不能令我很懂,所以就整理下。 -----------------------------------------------------更新开始--------------------------------------------------- 以下提到的“二进制”说明:数据在计算机中是以补码的形式存储的,所以该处所指“二进制”...

cobbwho的博客 2万+

Java中>> 运算符和>>>运算符的区别

>> 运算符和>>>运算符的区别 >>为有符号右移,正数右移时,高位补0,负数高位补1(负数以补码形式存储,所以不断右移的最终结果会为-1,因为补码 = 反码 -1) >>>为无符号左移,无论正数负数高位都补零,符号位也跟着移动 ...

ZepngLin的博客 288

Java运算符>>与>>>区别详解

1、&gt;&gt; 带符号右移(相当于除以2)。正数右移高位补0,负数右移高位补1。比如: 4 &gt;&gt; 1,4的原码为0000 0000 0000 0000 0000 0000 0000 0100,右移一位后为0000 0000 0000 0000 0000 0000 0000 0010,转成十进制为2。 -4 &gt;&gt; 1,-4的原码为1000 0000 0000 0000 ...

JiangYing的博客 3125

java中位与运算符_Java中位运算符>>和>>>的区别

一、<< 表示左移两位<注:以下数据类型默认为byte-8位左移时不管正负,低位补0正数:r = 20 << 2正数:r = 20 << 220的二进制补码:0001 0100向左移动两位后:0101 0000结果:r = 80负数:r = -20 << 2负数:r = -20 << 2-20 的二进制原码 :1001 0100-2...

weixin_39788792的博客 165
上一篇: Java中final变量
下一篇: Java复制数组的五种方式
icankeep
博客等级 码龄9年 11粉丝 76原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值