位运算符介绍(二):Java位运算符

2023-10-30

 

    Java语言提供了7个位操作运算符。这些运算符只能用于整型操作数,这些整数操作数包括long,int,short,char和byte。这里注意,相对于C/C++,Java多了一个位运算符“>>>”,整型操作数也多了一个byte类型(C/C++中没有byte类型整数),并且操作数没有unsigned类型整数,这需要注意。

    下面是Java位操作运算符列表,其中运算符优先级为从上到下递减,但<<,>>,>>>优先级相同。

Java位操作运算符
操作符 功能 用法
~ 位求反 ~expr
<< 左移 expr1 << expr2
>> 带符号右移,左边空出的位以原来最左边的0或者1填充 expr1 >> expr2
>>> 无符号右移,即左边空出的位以0填充 expr1 >>>expr2
& 位与 expr1 & expr2
^ 位异或 expr1 ^ expr2
| 位或 expr1 | expr2

    代码示例如下:

 

    运行结果如下:

~z=4

x&y=1

x^y=6

x|y=7

z<<1=-10

z>>1=-3

z>>>1=2147483645

    对于前四个结果,我不再做解释,可参考我的博文“位运算符(一):C/C++位运算符”。对于后三个结果,我的解释如下:

    z=-5,补码表示为(11111111 11111111 11111111 11111011)


         11111111 11111111 11111111 11111011 <<1

      = 11111111 11111111 11111111 11110110


         11111111 11111111 11111111 11111011 >>1

      = 11111111 11111111 11111111 11111101


         11111111 11111111 11111111 11111011 >>>1

      = 01111111 11111111 11111111 11111101


 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

位运算符介绍(二):Java位运算符 的相关文章

  • 为什么在 10 个 Java 线程中递增一个数字不会得到 10 的值?

    我不明白 a 的值为0 为什么 a 不是10 那段代码的运行过程是怎样的 是否需要从Java内存模型来分析 这是我的测试代码 package com study concurrent demo import lombok extern sl
  • 有人用过 ServiceLoader 和 Guice 一起使用吗?

    我一直想通过我们的应用程序 构建系统进行更大规模的尝试 但更高的优先级不断将其推到次要地位 这似乎是加载 Guice 模块的好方法 并且避免了关于 硬编码配置 的常见抱怨 单个配置属性很少会自行更改 但您几乎总是会有一组配置文件 通常用于不
  • 检查子字符串是否在字符串列表中?

    我之前已经找到了这个问题的一些答案 但它们对于当前的Python版本来说似乎已经过时了 或者至少它们对我不起作用 我想检查字符串列表中是否包含子字符串 我只需要布尔结果 我找到了这个解决方案 word to check or wordlis
  • Java中Gson、JsonElement、String比较

    好吧 我想知道这可能非常简单和愚蠢 但在与这种情况作斗争一段时间后 我不知道发生了什么 我正在使用 Gson 来处理一些 JSON 元素 在我的代码中的某个位置 我将 JsonObject 的 JsonElements 之一作为字符串获取
  • 为什么该字符串的长度比其中的字符数长?

    这段代码 string a abc string b A C Console WriteLine Length a 0 a Length Console WriteLine Length b 0 b Length outputs Lengt
  • ThreeTen 向后移植与 JSR-310 的比较

    由于某些原因 我们现在无法使用 java 8 我们仍然停留在 java 7 上 不过 我想使用新的JSR 310 date time APIs现在 使用官方向后移植 ThreeTen http www threeten org threet
  • 2^31 次方的 Java 指数错误 [重复]

    这个问题在这里已经有答案了 我正在编写一个java程序来输出2的指数幂 顺便说一句 我不能使用Math pow 但是在 2 31 和 2 32 处我得到了其他东西 另外 我不打算接受负整数 My code class PrintPowers
  • 使用 JDBC 连接到 PostgreSql 的本地实例

    我在 Linux 机器上有一个正在运行的 PostgreSql 本地实例 当我使用psql来自 shell 的命令我成功登录 没有任何问题 我需要通过 JDBC 连接到 PostgreSql 但我不知道我到底应该传递什么url参数为Driv
  • 如何使用双重调度来分析图形基元的交集?

    我正在分析图形基元 矩形 直线 圆形等 的交互并计算重叠 相对方向 合并等 这被引用为双重调度的一个主要示例 例如维基百科 http en wikipedia org wiki Double dispatch 自适应碰撞算法通常要求 不同的
  • 类更改(例如字段添加或删除)是否保持 Serialized 的向后兼容性?

    我有一个关于 Java 序列化的问题 在这种情况下 您可能需要修改可序列化类并保持向后兼容性 我有丰富的 C 经验 所以请允许我将 Java 与 NET 进行比较 在我的Java场景中 我需要使用Java的运行时序列化机制序列化一个对象 并
  • 按降序排序映射java8 [重复]

    这个问题在这里已经有答案了 private static
  • 如何向页面添加 HTML 页眉和页脚?

    如何使用 itext 从 html 源添加标题到 pdf 目前 我们已经扩展了 PdfPageEventHelper 并重写了这些方法 工作正常 但当我到达 2 个以上页面时 它会抛出 RuntimeWorkerException Over
  • 我们如何使用 thymeleaf 绑定对象列表的列表

    我有一个表单 用户可以在其中添加任意数量的内容表对象这也可以包含他想要的列对象 就像在 SQL 中构建表一样 我尝试了下面的代码 但没有任何效果 并且当我尝试绑定两个列表时 表单不再出现 控制器 ModelAttribute page pu
  • 我所有的 java 应用程序现在都会抛出 java.awt.headlessException

    所以几天前我有几个工作Java应用程序使用Swing图书馆 JFrame尤其 他们都工作得很好 现在他们都抛出了这个异常 java awt headlessexception 我不知道是什么改变了也许我的Java版本不小心更新了 谢谢你尽你
  • Spring Data Rest 多对多 POST

    首先 让我解释一下我的用例 这非常简单 有一个用户实体和一个服务实体 我使用 UserService 作为连接实体 连接表 在用户和服务之间建立多对多关联最初 会有一些用户集和一些服务集 用户可以在任何时间点订阅任何服务 在这种情况下 将向
  • 使用 Apache 允许 Glassfish 和 PHP 在同一服务器中协同工作

    是否可以建立从 Java 到 php 文件的桥梁 我有一个用 Java 编写的应用程序 我需要执行http piwik org http piwik org 这是用 PHP 编写的 在服务器中 我正在运行 PHP 但无法从浏览器访问 php
  • 确定 JavaFX 中是否消耗了事件

    我正在尝试使用 JavaFX 中的事件处理来做一些非滑雪道的事情 我需要能够确定手动触发事件后是否已消耗该事件 在以下示例中 正确接收了合成鼠标事件 但调用 Consumer 不会更新该事件 我对此进行了调试 发现 JavaFX 实际上创建
  • Selenium 单击在 Internet Explorer 11 上不起作用

    我尝试在 Internet Explorer 上单击 selenium 但它不起作用 我努力了element click moveToElement element click build perform javascript没事了 事实上
  • Java 的“&&”与“&”运算符

    我使用的示例来自 Java Herbert Schildt 的完整参考文献 第 12 版 Java 是 14 他给出了以下 2 个示例 如果阻止 第一个是好的 第二个是错误的 因此发表评论 public class PatternMatch
  • 关闭扫描仪是否会影响性能

    我正在解决一个竞争问题 在问题中 我正在使用扫描仪获取用户输入 这是 2 个代码段 一个关闭扫描器 一个不关闭扫描器 关闭扫描仪 import java util Scanner public class JImSelection publ

随机推荐

  • MySQL表操作:提高数据处理效率的秘诀(进阶)(1)

    生命不在于相信奇迹 而在于创造奇迹 朱学恒 作者 不能再留遗憾了 专栏 MySQL学习 本文章主要内容 MySQL对表操作进阶 数据库约束 表的设计 新增 后续会更新进阶表的查询 文章目录 前言 1 数据库约束 NULL约束 UNIQUE
  • python网络爬虫之淘宝订单提取

    import asyncio import pyppeteer as pyp import time async def antiAntiCrawler page 为page添加反反爬虫手段 await page setUserAgent
  • 剑指 Offer(专项突击版)- 剑指 Offer II 064. 神奇的字典(20220809)

    设计一个使用单词列表进行初始化的数据结构 单词列表中的单词 互不相同 如果给出一个单词 请判定能否只将这个单词中一个字母换成另一个字母 使得所形成的新单词存在于已构建的神奇字典中 实现 MagicDictionary 类 MagicDict
  • cpp: Visitor Pattern

    file Gold h brief 访问者模式 Visitor Pattern C 14 行为模式 2023年6月8日 涂聚文 Geovin Du Visual Studio 2022 edit 文章来源 C 新经典设计模式 王健伟编著 清
  • 来看21届IT学子应该如何备战秋招?

    写在前面 今天是2020年7月14 离正式秋招可能就两个月时间了 睡了个午觉醒来脑子里突然就在想怎样才能在秋招中找到一份满意的工作 决定把自己所想写下来 这篇文章写给自己同时也写给即将找工作的2021届各位幸运宝宝 一 有计划有目标的提高自
  • android项目迁移到androidX:类映射(android.arch.*)

    android arch core 支持库类 AndroidX 类 core executor AppToolkitTaskExecutor androidx arch core executor AppToolkitTaskExecuto
  • pytorch3d安装遇到的一些坑和解决过程

    最近为了安装pytorch3d 折腾了两天 足足两天 要注意 安装pytorch3d之前 必须先安装pytorch torchvision Pytorch3d官方 是建议用conda install的方式来安装 也可以用pip来安装 pip
  • 如何实现一个IAM系统

    IAM Identity and Access Management 的缩写 即 身份识别与访问管理 它提供单点登录 强大的认证管理 集中的授权和审计 帮助企业安全 高效地管理IT系统账号和资源权限 产品简介 赛赋Cipher IDaaS是
  • Pandas的read_excel函数学习

    excel表的读取在python中是非常重要的 为了方便今后的使用 我将我学习用python读取excel表的过程记录下来 以便今后回顾时能快速想起各种方法 下图为示例中使用的excel表中的内容 sheet1 学生的信息 sheet2 成
  • windows:ngix无法绑定80端口

    问题 cmd运行ngix提示 nginx emerg bind to 0 0 0 0 80 failed 10013 An attempt was made to access a socket in a way forbidden by
  • vue 默认选中复选框案例

  • JFrame的一些简单操作

    前几天在Java课上 老师有一段代码用到了Jframe和Jbutton这两个东西 起初我以为这是我们老师自己写的类 但是之后我一查发现这是Java中用于操控一个小窗口而封装的类 于是我去了解一下这个类 然后写了一个非常简陋的窗口 publi
  • 紫外光刻胶 AR-N 4400/电子束光刻胶 AR-N7700/AR-P617 电子束光刻胶

    光刻胶又称抗蚀剂 是指通过紫外光 电子束 离子束 射线等的照射或辐射 其性质发生变化的耐蚀刻薄膜材料 按曝光光源和辐射源的不同 又分为紫外光刻胶 包括紫外正性光刻胶 紫外负性光刻胶 深紫外光刻胶 电子束胶 射线胶 离子束胶等 AR N 44
  • 微信小程序框架——uni-app

    文章目录 uni app介绍 1 什么是uni app 2 上线的产品 3 uni app的社区和规模 uni app基础 1 uni app初体验 2 项目结构介绍 3 样式和sass 4 基本语法 5 事件 6 组件 7 生命周期 补充
  • python笔记:数组的一些操作

    目录 1 对数组求指数和对数 2 数组的最值及其索引 3 按照行或者列求均值 求和 最大值 最小值 标准差 方差 4 取对角线元素 5 取两个数组对应的最大或最小值 6 对数组重新排列 1 对数组求指数和对数 参考 指数 math exp
  • React.lazy懒加载组件

    1 React lazy的用法 React lazy方法可以异步加载组件文件 const Foo React lazy gt import componets ChildComponent React lazy不能单独使用 需要配合Reac
  • mysql关于mysql.server

    1 mysql server服务端工具 主要作用就是为了方便启动和关闭mysql服务 这个脚本中调用mysqld safe来启动mysqld 2 RPM包安装时 发现 etc rc d init d mysql和 usr share mys
  • 使用pip安装package的时候,如何不使用cache的文件,重新下载(防止package之间版本不匹配)

    我们在使用pip安装某一个package的时候 如果安装的有问题向卸载之后重新安装 卸载 pip uninstall mediapipe 重新安装 pip install mediapipe 但是 执行命令之后发现使用了cached的whe
  • CSerialPort教程4.3.x (2) - CSerialPort源码简介

    CSerialPort教程4 3 x 2 CSerialPort源码简介 前言 CSerialPort项目是一个基于C C 的轻量级开源跨平台串口类库 可以轻松实现跨平台多操作系统的串口读写 同时还支持C Java Python Node
  • 位运算符介绍(二):Java位运算符

    Java语言提供了7个位操作运算符 这些运算符只能用于整型操作数 这些整数操作数包括long int short char和byte 这里注意 相对于C C Java多了一个位运算符 gt gt gt 整型操作数也多了一个byte类型 C