4. JavaSE ——【移位运算符】


📖 开场白


亲爱的读者,大家好!我是一名正在学习编程的高校生。在这个博客里,我将和大家一起探讨编程技巧、分享实用工具,并交流学习心得。希望通过我的博客,你能学到有用的知识,提高自己的技能,成为一名优秀的程序员。如果你有任何疑问或建议,请随时在评论区留言,让我们一起成长进步!现在,让我们开始这场知识之旅吧!


在这里插入图片描述


📑本人主页:三亿老奶奶心中的梦
🔖收入专栏:JavaSE


文章目录

  • 📖 开场白
  • 📖 前言
  • 📖 1. 移位运算符
    • 🔖1.1 左移(<<)
    • 🔖1.2 右移(>>)
    • 🔖1.3 无符号右移(>>>)
  • 📖 总结
  • 📖 结束语


📖 前言

本章节将会讲解,什么是移位运算符,如何去使用移位运算符!如有错误,还请指出,非常感谢!!!


📖 1. 移位运算符


移位运算符,在Java中有3种,分别是:

  1. 左移(<<)
  2. 右移(>>)
  3. 无符号右移(>>>)

这些移位运算符都是双目运算,并且都是对二进制进行移位!!!


🔖1.1 左移(<<)


左移(<<),是对一个数的二进制位进行移位,操作的就是这个数的二进制位,那么它的运算规则是:左边丢弃,右边补0

图表 1.1
在这里插入图片描述


对正数移位:

public class TestDemo {public static void main(String[] args) {int a = 6;int b = a << 1;System.out.println("a << 1 = " + b);}

运行结果:

在这里插入图片描述

分析:

  1. 左移运算符的规则是左边丢弃,右边补0,并且移位的是二进制位,我们先写出 int a = 6 的二进制位
  2. 随后进行 a << 1,就得到了 12,对于一些数左移可以说有着乘2的效果,但是并不是所有的数都有着乘2效果
  3. 当左移n位,右边就补n个0,例如:左边移1位,右边补1个0;左移2位,右边补2个0
    在这里插入图片描述

对负数移位:

public class TestDemo {public static void main(String[] args) {int a = -10;int b = a << 1;System.out.println("a << 1 = " + b);}

运行结果:

在这里插入图片描述

分析:

  1. 首先,写出这个数的二进制位,如果是负数,原反补码不同,如果是正数,它的原反补码相同
    在这里插入图片描述
  2. 进行 a << 1 ,得到下图,得到的补码需要进行转换为原码
    在这里插入图片描述

🔖1.2 右移(>>)


右移(>>),同样的是对一个数的二进制位进行移位,那么它的运算规则是:右边丢弃,左边补原符号位(原符号位是左边第一位数,其他位数为数值位)

图标1.2

在这里插入图片描述


对正数进行移位:

public class TestDemo {public static void main(String[] args) {int a = 8;int b = a >> 1;System.out.println("a >> 1 = " + b);}

运行结果:

在这里插入图片描述

分析:

  1. 对于右移,同样需要写出被右移数的二进制位
    在这里插入图片描述
  2. 进行 a >> 1 ,最终得到,也就说当右移n位,右边的值就丢弃n位,而左边的值看原符号位来补n位(原符号位是左边第一位数,其他位数为数值位)
    在这里插入图片描述

对负数进行移位:

public class TestDemo {public static void main(String[] args) {int a = -4;int b = a >> 1;System.out.println("a >> 1 = " + b);}

运行结果:

在这里插入图片描述

分析:

  1. 对于右移负数,我们需要写出它的原码,反码,补码
    在这里插入图片描述
  2. 随后对补码进行 a >> 1 ,右边的值丢弃n位,左边就补齐n位原符号的值
    在这里插入图片描述

🔖1.3 无符号右移(>>>)


无符号右移(>>>),同样的是对一个数的二进制位,进行移位,那么它的运算规则是:右边丢弃,左边补0

图标1.3

在这里插入图片描述


无符号右移正数:

public class TestDemo {public static void main(String[] args) {int a = 4;int b = a >>> 1;System.out.println("a >>> 1 = " + b);}

运行结果:

在这里插入图片描述

分析:

  1. 首先,写出这个被无符号右移数的二进制位
  2. 进行 a >>> 1,右边丢弃n位,左边补n个0
    在这里插入图片描述

对负数进行 >>>

public class TestDemo {public static void main(String[] args) {int a = -4;int b = a >>> 1;System.out.println("a >>> 1 = " + b);}

运行结果:

在这里插入图片描述

分析:

  1. 首先,写出该数的二进制位,随后对补码进行 a >>> 1,最终得到一个很大的数 在这里插入图片描述
    在这里插入图片描述

📖 总结


  1. 移位不要移动小数位!!!
    在这里插入图片描述
  2. 移位不要移动太大的数

📖 结束语


非常感谢您花时间阅读我的博客,希望我的分享能为您带来收获。如果您对本文有任何想法或疑问,欢迎在评论区留言交流。如果您喜欢我的博客,请继续关注,我会定期更新更多精彩内容。最后,别忘了行动起来的力量,让我们一起实践这些方法,见证自己的成长和进步!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3245738.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

智慧煤矿:AI视频智能监管解决方案引领行业新变革

随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;技术已经渗透到各个行业&#xff0c;为传统产业的转型升级提供了强大的动力。在煤矿行业中&#xff0c;安全监管一直是一个重要的议题。为了提高煤矿的安全生产水平&#xff0c;降低事故发生率&#xff0c;智…

6 款 SD 卡数据恢复软件,助您恢复丢失的文件

如果您经常使用摄像机、相机或某种类型的手机&#xff0c;您会发现您的数据和文件存储在 SD 卡上。这使得它成为设备中非常重要的一部分。但是&#xff0c;SD 卡相对容易损坏&#xff0c;这可能会导致您的文件和数据意外丢失。 此时&#xff0c;您需要采取一些措施来帮助您恢复…

springboot项目 导入 maven坐标 错误 Could not transfer artifact XXX

1.报错原因 当时导入的是 redis坐标 &#xff0c;导入jar 包报错&#xff08;当时是网速太慢了&#xff0c;一直卡着不动 就关了 idea 重新下载&#xff09;结果报错 之前的redis 项目都可以的&#xff0c;网上找了一下 都没解决 2.解决办法 既然说不能传输&#xff0c; 就说…

Python数据爬取(续)

如有需要阅读可在资源下载&#xff0c;因文章设计内容&#xff0c;官方大大审核无法直接通过 已上传至GitCode上&#xff0c;如感兴趣可观看

机器学习 | 深入理解激活函数

什么是激活函数&#xff1f; 在人工神经网络中&#xff0c;节点的激活函数定义了该节点或神经元对于给定输入或一组输入的输出。然后&#xff0c;将此输出用作下一个节点的输入&#xff0c;依此类推&#xff0c;直到找到原始问题的所需解决方案。 它将结果值映射到所需的范围…

【后端开发实习】用MongoDB和Redis实现消息队列搭建分布式邮件消息系统

用Redis实现消息队列并搭建分布式邮件消息系统 系统介绍Redis实现消息队列思路分析代码实现 MongoDB监听数据变化思路分析代码实现Mongoose测试连接监听mongodb数据变化 注意点 系统介绍 本次要实现的是一个能够实现实时监控Mongodb中数据变化的系统&#xff0c;要能够在数据发…

VGMShield:揭秘视频生成模型滥用的检测与追踪技术

人工智能咨询培训老师叶梓 转载标明出处 视频生成模型&#xff0c;如 Stable Video Diffusion 和 Videocrafter&#xff0c;已经能够生成合理且高分辨率的视频。但这些技术进步也带来了被恶意利用的风险&#xff0c;比如用于制造假新闻或进行政治宣传。因此&#xff0c;来自弗…

彩电上自带的推箱子游戏是什么编程语言开发的?

2000年左右的厦新彩电上&#xff0c;自带了推箱子、华容道游戏。界面如下&#xff1a; 在线版推箱子游戏&#xff0c;网址&#xff1a;https://www.tuixiangzi.cn/ BASIC&#xff0c;全称是Beginners All-purpose Symbolic Instruction Code&#xff0c;含义是初学者通用符号…

【杰理蓝牙开发】AC695x 按键扫描接口分析

【杰理蓝牙开发】AC695x 按键ADC接口分析 0. 个人简介 && 授权须知1. 按键扫描配置和按键消息处理1.1 参数说明1.2 按键事件说明2. 应用层处理3. 特殊按键需求3.1 特殊需求 1:组合键3.2 特殊需求 2:按键多击事件3.3 特殊需求 3:某些按键只响应单击事件0. 个人简介 &…

AI算法20-分位数回归算法Quantile Regression | QR

分位数回归算法的概念 分位数回归算法简介 分位数回归&#xff08;Quantile Regression&#xff09;是一种统计方法&#xff0c;最早由Roger Koenker和Gilbert Bassett于1978年提出。它通过估计条件分位数函数来分析自变量与因变量之间的关系&#xff0c;与传统的最小二乘回归…

怎么压缩视频文件?简单的压缩视频方法分享

视频已成为我们日常生活中不可或缺的一部分。但随着视频质量的提高&#xff0c;文件大小也逐渐成为我们分享的阻碍。如何有效压缩视频文件&#xff0c;使其既能保持清晰&#xff0c;又能轻松分享&#xff1f;今天&#xff0c;给大家分享五种实用的视频压缩方法&#xff0c;快来…

昇思25天学习打卡营第02天|张量 Tensor

一、什么是张量 Tensor 张量是一种特殊的数据结构&#xff0c;与数组和矩阵非常相似。张量&#xff08;Tensor&#xff09;是MindSpore网络运算中的基本数据结构。 张量可以被看作是一个多维数组&#xff0c;但它比普通的数组更加灵活和强大&#xff0c;因为它支持在GPU等加速…

项目JetCache的常见配置与使用

Hello, 大家好&#xff0c;今天本汪给大家带来的是JetCache在项目中的常见配置与用法讲解&#xff0c;接下来&#xff0c;随本汪一起来看看吧 一、介绍 官网地址&#xff1a;https://github.com/alibaba/jetcache JetCache 是一种 Java 缓存抽象&#xff0c;它为不同的缓存…

腾讯PAG动效工具解析

什么是PAG&#xff1f; 1、背景 在终端 APP 中&#xff0c;动画非常常见&#xff0c;它可以辅助视觉制造焦点&#xff0c;同时也可以让用户交互更加顺滑&#xff0c;但动画的实现却是设计师和研发群体的一个痛点。如何辅助设计师设计高性能炫酷的动画、如何将设计师设计的动画…

自托管端口管理系统Portall

老苏一直在折腾各种开源软件&#xff0c;但总是记不清哪些应用占用了哪些端口&#xff0c;每次都是先随机想一个端口&#xff0c;然后在笔记中搜索&#xff0c;看有没有被占用过。Portall 就是用来解决老苏遇到的这种情况的&#xff0c;当然&#xff0c;excel 也是可以的 &…

十分钟“手撕”七大排序

前言&#xff1a;可以通过目录来找你需要的排序的源代码。先是解释底层原理&#xff0c;后附带代码。 目录 稳定的概念 一、插入排序 二、希尔排序 三、选择排序 四、堆排序 五、冒泡排序 六、快速排序 七、归并排序 八、排序总结 额外&#xff1a;计数排序 稳定的…

Qt MV架构-委托类

一、基本概念 与MVC模式不同&#xff0c;MV视图架构中没有包含一个完全分离的组件来处理与用户的交互。 一般地&#xff0c;视图用来将模型中的数据显示给用户&#xff0c;也用来处理用户的输入。为了获得更高的灵活性&#xff0c;交互可以由委托来执行。 这些组件提供了输入…

gradle学习及问题

一、下载安装 参考&#xff1a;https://blog.csdn.net/chentian114/article/details/123344839 1、下载Gradle并解压 安装包&#xff1a;gradle-6.7-bin.zip 可以在idea的安装目录查看自己适配的版本 路径&#xff1a;D:\IDEA2021.3\plugins\gradle\lib 下载地址&#xff1a…

16_网络IPC2-寻址

进程标识 字节序 采用大小模式对数据进行存放的主要区别在于在存放的字节顺序&#xff0c;大端方式将高位存放在低地址&#xff0c;小端方式将高位存放在高地址。 采用大端方式进行数据存放符合人类的正常思维&#xff0c;而采用小端方式进行数据存放利于计算机处理。到目前…

python用selenium网页模拟时xpath无法定位元素解决方法2

有时我们在使用python selenium xpath时&#xff0c;无法定位元素&#xff0c;红字显示no such element。上一篇文章写了1种情况&#xff0c;是包含iframe的&#xff0c;详见https://blog.csdn.net/Sixth5/article/details/140342929。 本篇写第2种情况&#xff0c;就是xpath定…