Java中的位移运算符

Java 中的位移运算符 在源码中经常会看到一些位移运算符的使用,比如在看HashMap源码的时候,在计算hashMap容量的阈值的时候,就使用到了位移运算符,代码如下: java中有三种移位运算符 << : 左移运算符,num << 1,相当于num乘以2 >> : 右移运算符,num >> 1,相当于num除以2 >&gt... 阅读详情

1) “有符号”左移位运算符(<<)能将运算符左边的运算对象向左移动运算符右侧指定的位数(在低位补0)。 

左移移位相当于乘以2,例如

    5<<1    //10   数字5向左移1位

    2<<3   //16    2向左移3位,相当于 2*(2的3次方)

    3 << 2  //12  则是将数字3左移2位    3*2*2  = 3*(2的2次方)

    

解析:首先把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011,然后把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,最后在低位(右侧)的两个空位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100,则转换为十进制是12.数学意义:

    在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。



2) “有符号”右移位运算符(>>)则将运算符左边的运算对象向右移动运算符右侧指定的位数。 “有符号”右移位运算符使用了“符号扩展”:若值为正,则在高位插入0;若值为负,则在高位插入1。


>>运算规则:按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补符号位,移位后得到的数字为正数则补0,负数补1.

例如11 >> 2,则是将数字11右移2位

    计算过程:11的二进制形式为:0000 0000 0000 0000 0000 0000 0000 1011,然后把低位的最后两个数字移出,因为该数字是正数,所以在高位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 0010.转换为十进制是3.数学意义:右移一位相当于除2,右移n位相当于除以2的n次方。



3) Java也添加了一种“无符号”右移位运算符(>>>),它使用了“零扩展”:无论正负,都在高位插入0

(4)右移一位相当于除以2,左移一位(在不溢出的情况下)相当于乘以2;移位运算速度高于乘除运算。


3.位运算符的优先级 

~的优先级最高,其次是<<、>>和>>>,再次是&,然后是^,优先级最低的是|。


Java零基础 - 位移运算符 Java是一门广泛应用于软件开发领域的编程语言,其强大的功能和丰富的库使得开发人员能够快速构建各种类型的应用程序。在Java中,位移运算符是一种常用的运算符,用于对二进制数进行位移操作。本文将介绍Java中位移运算符的使用方法和相关概念,并通过源代码解析和实际应用案例,帮助读者更好地理解和应用位移运算符。本文将深入介绍Java中的位移运算符,包括左移运算符(<<)、有符号右移运算符(>>)和无符号右移运算符(>>>)。通过具体的实例和代码演示,读者能够快速了解和掌握位移运算符的使用。 阅读详情

相关推荐

从仿真曲线到电路状态:用Cadence Virtuoso深度剖析CS放大器各个工作区(以电流源负载为例)

本文通过Cadence Virtuoso平台,深入剖析电流源负载CS放大器在不同工作区的表现,从仿真曲线解读电路状态。详细介绍了如何通过Vout-Vin直流扫描曲线判断MOS管工作区域(截止区、饱和区、线性区),并验证理论与仿真的一致性,提升模拟IC设计调试效率。

weixin_30940783的博客 442

java 位移运算

java 位移运算

u013168615的专栏 5752

集成calibre到cadence virtuoso环境中 load: can‘t access file - “/opt/eda/Mentor/lib/calibre.skl“

项目场景: 设想是将Calibre集成到cadence virtuoso中,但网上的解决办法尝试过在本机上实验都有点问题,因此想记录下来我的解决办法仅供参考。 问题描述: 安装好cadence, calibre之后打开virtuoso,CIW窗口显示 *Error* load: can't access file - "/opt/eda/Mentor/lib/calibre.skl" 问题是出在calibre.skl的加载路径出错,尝试网上的在工程目录下修改.cdsinit文件,添加calibre安装

weixin_52714276的博客 1万+

Java数据结构与算法:位运算之位移操作

位移操作是指将一个二进制数的所有位按照规定的方向移动若干位。在Java中,有两种位移操作符:左移(<<)和右移(>>)。位移操作是位运算中的重要组成部分,不仅可以提高运算效率,还能在一些场景下简化代码逻辑。通过学习左移和右移操作,我们可以更好地理解位运算的妙处,并在实际开发中灵活应用。

技术研究中心 975

WRF所需气象数据的下载方法

#数据下载是个大问题,巧妇难为无米之炊,没有数据就无法模拟啦,疫情期间国外服务器响应慢,打开网页慢都很正常啦~ WRF数据所需要的外部数据分为两种:静态地理数据,grib格式的气象数据(NAM、GFS、RUC、AGRMET等)。静态地理数据可以从WRF官网获得,比较简单,这里不做介绍。所以这篇日志重点介绍的是气象数据的获取。 提前说明,WRF官网不提供气象数据,但WRF官网提供各类气象数据的下载网址链接,所以我们下载一般还是从WRF官网开始。首先进入WRF官网,然后点击WRF ARW Uusres’ .

六出的博客 1万+

用MCP扩展Cursor的5种神奇用法:从文件操作到网页抓取实战

本文深入探讨了如何利用MCP(Model Context Protocol)扩展Cursor AI编程助手,解锁五种高效实用场景。从文件系统操作、网页内容抓取,到数据库查询、Figma设计稿对接,乃至构建自定义MCP服务器,文章通过实战案例展示了如何将Cursor从代码编辑器升级为能理解并操作工作环境的智能助手,显著提升开发效率与自动化水平。

weixin_29231027的博客 315

【Java】Java中的位移运算

以下分析仅针对Java语言,可以直接看最下面的结论。 一、左移(<<):高位舍弃,低位补0,所有位一起左移,包括符号位   代码(初始为正数1,连续左移,直到为0) int n = 1; int step = 0; System.out.println(step + ":" + Integer.toBinaryString(n) + ":" + n); while (n != 0) { n = n << 1; step++; System.out.p

mizepeng的博客 8269

surfer10与Arcgis10.3 完美生成等值线和等值面方法

surfer10 与Arcgis10.3生成等值线和等值面的步骤如下: 1.准备surfer用的Book1.dat文件,格式如下: "x" "y" "z" 116.471992 40.809975 232 116.335556 40.700542 1235 116.541626 40.713333 214 116.73349 40.798607 566 2.在surfer中,选择Gr

哈里·雪利博客 1万+

Java移位运算符

无符号右移其实就是将符号位也当成一个普通的位,因为正数的符号位为0,所以对正数来说,无符号右移跟有符号右移是一样的。而对负数来说,无符号右移是在高位插入0,而有符号右移是在高位插入0。-3的补码是 1111 1111 1111 1111 1111 1111 1111 1101;即 -3 ==> 2147483646 (10进制)。即 -3 ==> -6 (10进制);即 -3 ==> -2 (10进制);即 3 ==> 6 (10进制);即 3 ==> 1 (10进制);对补码再取补,得到对应的原码。

chen1030416518的博客 1795

量子-经典混合架构与动态QUBO建模

量子-经典混合架构与动态QUBO建模的结合,是当前量子计算与经典计算融合领域的前沿方向。通过将量子计算的并行性与经典计算的灵活性结合,该技术为解决复杂动态优化问题(如实时调度、金融投资组合优化、电力系统控制等)提供了全新的方法论。:将发电机组调度分解为QUBO(启停决策)与非QUBO(功率分配)子问题,通过3块ADMM协调;c_i(t) $随外部环境(如电力需求、市场价格)动态调整。量子-经典混合架构与动态QUBO建模的结合,标志着优化计算从。:每分钟根据市场波动调整QUBO的收益率-风险系数;

百态·数智思维 | 聚焦大数据、量化与未来AI 1334

第 13 章:Spring AI Alibaba MCP 与 Nacos3 — 企业级MCP服务

理解Spring AI Alibaba 框架下的MCP服务与Nacos注册中心整合的必要性,学会Spring AI Alibaba-基于Nacos的MCP实现方法

paopao_wu的专栏 788

Java基础:移位运算符

操作符输入示例解释> y将 x 中的位向右移动 y 位,左端填充与当时最高有效位相同的符号。>>>x >>> y将 x 中的位向右移动 y 位,用 0 填充左端。注意:移位运算符用于整型值。

网络技术联盟站 810

PostgreSQL:十五. 性能优化

十五. 性能优化 优化简介: PostgreSQL优化一方面是找出系统的瓶颈,提高PostgreSQL数据库整体的性能; 另一方面,需要合理的结构设计和参数调整,以提高用户操作响应的速度; 同时还要尽可能的节省系统资源,以便系统可以提供更大负荷的服务。 PostgreSQL数据库优化是多方面的,原则是减少系统的瓶颈,减少资源的占用,增加系统的反应速度。例如: 通过优化文件系统,提高磁盘IO的读写速度; 通过优化操作系统调度策略,提高PostgreSQL的在高负荷情况下负载能力; 优化表结构、索引、查询

数据知道的博客 4万+

java中的位移运算符_Java 位移运算符

本人只是 Android小菜一个,写技术文档只是为了总结自己在最近学习到的知识,从来不敢为人师,如果里面有些不正确的地方请大家尽情指出,谢谢!1.概述Java 位移运算符是Java中基本的位运算操作,但是平时工作中没有直接使用到,所以一直对其没有仔细研究过,对其实现也并不清楚。最近打算学习下HashMap的实现原理,发现里面有些代码用到了位移操作,下面的代码用到了无符号右移,第一次看到这段代码的时...

weixin_42250528的博客 659

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Java位移运算符

Java位移运算符 Java位移运算符分为两大类: 左移 右移 x = x &lt;&lt; n 左移运算是将二进制位串向左移动n位,低位补0,而左移运算符号没有带符号和不带符号的概念。 右移运算是将二进制位串向右移动n位,右移运算符有带符号和不带符号的概念: 带符号右移:&gt;&gt; ,保留最高位(符号位),其余的高位补0,带符号右移保留被右移的数的正负符号,例如-1对应的...

Spground 607

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

关于java位移运算符

关于java位移运算符 java中有三种移位运算符 “<<” : 左移运算符,num << 1,相当于num乘以2 “’>>’” : 右移运算符,num >> 1,相当于num除以2 “>>>”:无符号右移,忽略符号位,空位都以0补齐 下面来看看在代码中的使用: public static void main(String[] agrs) { int number = 10; //原始数二进制

weixin_45838615的博客 432

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

java 字符串位移_Java中的位移运算符 | 学步园

Java中的位移运算符移位运算符就是在二进制的基础上对数字进行平移。我们知道,Java中byte、short和char类型在进行计算时都是先将其转换为int类型,同样在进行移位运算时也不例外。它们移位后的结果也都会变成int类型。由于int类型为32位的(1),所以对于byte、short、char和int进行移位时,规定实际移动的次数最多是31位,如果超过31,则按n = n % 32来计算,也...

weixin_36330148的博客 684

java中位移运算符

java中位移运算符 // << : 左移运算符,num << 3,相当于num乘以2的3次方 // >> : 右移运算符,num >> 1,相当于num除以2的1次方 // << : 左移运算符,num << 3,相当于num乘以2的3次方 int number = 10; number = number << 3; System.out.println(number); // 80 // >>

佛说"獨" 的博客 162

怎么能快速入门Java开发 如何学好位移运算符

  怎么能快速入门Java开发?如何学好位移运算符?学习Java本来就是一件日积月累的事情,或许你通过自学能掌握一些皮毛技术,学到Java的一些基本大面,但想要做到精通,还是需要自己技术的日积月累和工作经验的不断积累。今天给大家分享的技术知识是:Java中的位移运算符!   1) “有符号”左移位运算符(<<)能将运算符左边的运算对象向左移动运算符右侧指定的位数(在低位补0)。   左移移位相当于乘以2,例如   3 << 2 //12 则是将数字3左移2位 3*2*2 =

qq_43444478的博客 115

java之位移运算符

System.out.println("经过左移运算加密后的结果:"+password);System.out.println("经过右移运算还原的结果:"+password);System.out.println("原密码:"+password);这三个运算符都可以将任意数字以二进制数的方式进行位移运算。java里位移运算符有3个,分别是左移 <<右移 >> 无符号右移 >>>左移和右移不会改变数字的正负。无符号右移只能得出结果为正。

2301_81968528的博客 377

Java 位移运算符

Java 位移运算符

Hello World 234

Java培训教程:Java中的位移运算符!

学习Java本来就是一件日积月累的事情,或许你通过自学能掌握一些皮毛技术,通过系统学习学到Java的一些基本大面,但想要做到精通,还是需要自己技术的日积月累和工作经验的不断积累。 今天小千给大家分享的技术知识是:java中的位移运算符! 1) “有符号”左移位运算符(<<)能将运算符左边的运算对象向左移动运算符右侧指定的位数(在低位补0)。 左移移位相当于乘以2,例如 3 << 2 //12 则是将数字3左移2位 322 = 3*(2的2次方) 分析:首先把3转换为二进制数字000

xiaoxijinger的博客 829

JAVA左位移运算符的原理及运用

问题:1 << 2 为什么就等于4了? 左位移操作符:<< 原理:将对应的十进制数转换为二进制数之后左位移运算符后面是几就补几个零,再转换为对应的二进制数就可以了 比如说题干中的,1对应的二进数当然也是1,1后面补两个0,变为100,100的十进制数你猜不到等于4吧 1(d) = 1(b) 1(b) 左移 2位 = 100(b) 100(b) = 4(d) 其中b代表二进制(binary), d代表十进制(decimal) 4(d) = 100(b) 100(b)

David_Aulier的博客 738
上一篇: char byte int互转
下一篇: Java中的线程池
八阿哥别走
博客等级 码龄16年 8粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值