Java 中的位运算

移位运算符

包括:
“>> 右移”;“<< 左移”;“>>> 无符号右移”

例子:
-5>>3=-1
1111 1111 1111 1111 1111 1111 1111 1011
1111 1111 1111 1111 1111 1111 1111 1111
其结果与 Math.floor((double)-5/(2*2*2)) 完全相同。

-5<<3=-40
1111 1111 1111 1111 1111 1111 1111 1011
1111 1111 1111 1111 1111 1111 1101 1000
其结果与 -5*2*2*2 完全相同。

5>>3=0
0000 0000 0000 0000 0000 0000 0000 0101
0000 0000 0000 0000 0000 0000 0000 0000
其结果与 5/(2*2*2) 完全相同。

5<<3=40
0000 0000 0000 0000 0000 0000 0000 0101
0000 0000 0000 0000 0000 0000 0010 1000
其结果与 5*2*2*2 完全相同。

-5>>>3=536870911
1111 1111 1111 1111 1111 1111 1111 1011
0001 1111 1111 1111 1111 1111 1111 1111

无论正数、负数,它们的右移、左移、无符号右移 32 位都是其本身,比如 -5<<32=-5、-5>>32=-5、-5>>>32=-5。
一个有趣的现象是,把 1 左移 31 位再右移 31 位,其结果为 -1。
0000 0000 0000 0000 0000 0000 0000 0001
1000 0000 0000 0000 0000 0000 0000 0000
1111 1111 1111 1111 1111 1111 1111 1111


位逻辑运算符

包括:
& 与;| 或;~ 非(也叫做求反);^ 异或

“& 与”、“| 或”、“~ 非”是基本逻辑运算,由此可以演变出“与非”、“或非”、“与或非”复合逻辑运算。“^ 异或”是一种特殊的逻辑运算,对它求反可以得到“同或”,所以“同或”逻辑也叫“异或非”逻辑。

例子:
5&3=1
0000 0000 0000 0000 0000 0000 0000 0101
0000 0000 0000 0000 0000 0000 0000 0011
0000 0000 0000 0000 0000 0000 0000 0001

-5&3=1
1111 1111 1111 1111 1111 1111 1111 1011
0000 0000 0000 0000 0000 0000 0000 0011
0000 0000 0000 0000 0000 0000 0000 0011

5|3=7
0000 0000 0000 0000 0000 0000 0000 0101
0000 0000 0000 0000 0000 0000 0000 0011
0000 0000 0000 0000 0000 0000 0000 0111

-5|3=-5
1111 1111 1111 1111 1111 1111 1111 1011
0000 0000 0000 0000 0000 0000 0000 0011
1111 1111 1111 1111 1111 1111 1111 1011

~5=-6
0000 0000 0000 0000 0000 0000 0000 0101
1111 1111 1111 1111 1111 1111 1111 1010

~-5=4
1111 1111 1111 1111 1111 1111 1111 1011
0000 0000 0000 0000 0000 0000 0000 0100

5^3=6
0000 0000 0000 0000 0000 0000 0000 0101
0000 0000 0000 0000 0000 0000 0000 0011
0000 0000 0000 0000 0000 0000 0000 0110

-5^3=-8
1111 1111 1111 1111 1111 1111 1111 1011
0000 0000 0000 0000 0000 0000 0000 0011
1111 1111 1111 1111 1111 1111 1111 1000


^ 异或,是好用的东西,很简单实现开关
8 ^ 8 =0
8 ^(8 ^8)=8
8^(8 ^(8 ^8))=0
华为OD机试真题 新系统 9月20号 【字符串分组求和】 华为OD新系统机试真题【字符串分组求和】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【字符串分组求和】解析。 阅读详情

相关推荐

图像去雾新思路:手把手教你复现DEA-Net中的“细节增强卷积”与PyTorch实现

本文详细解析了DEA-Net中的'细节增强卷积'(DEConv)与PyTorch实现,通过多分支差分卷积和重参数化技术,显著提升单图像去雾效果。文章从数学原理到代码实现,手把手指导复现这一创新架构,帮助开发者在保持轻量化的同时实现41dB以上的PSNR指标,适用于自动驾驶、遥感监测等关键领域。

weixin_30323631的博客 505

java中 “|=“是什么意思

今天偶然间看到程序中有这样一个操作, 乍看一脸懵逼 int a = 6; int b = 5; a |= b; System.out.println(a); 首先 介绍一下逻辑运算 & 与 相同为1 | 或 有1为1 其次介绍一下二进制 6 --> 0110 4 --> 0100 5 --> 0101 实验 int a = 6; int b = 4; a|=b; 输出: 6 b = 5; a|=b; 输出: 7 6|4 011.

艺博❀ 1万+

echarts如何实现3D饼图(环形图)?

自定义修改3D饼图的宽高和legend

i-cat的博客 1万+

Java中的 |=、&=、^=

public class Test { public static void main(String args[]) { int a1 = 5; // 0000 0101 int b1 = 3; // 0000 0011 a1 |= b1; // 0000 00111 System.out.println("|= "+a1); int a2 = 5; // 0000 0101 int b2 = 3...

qq_40378795的博客 1万+

第二十届全国大学生智能汽车竞赛极速光电组:MicroPython与恩智浦RT1021的硬件编程实战指南

本文为参加第二十届全国大学生智能汽车竞赛极速光电组的同学提供了一份详尽的MicroPython与恩智浦RT1021硬件编程实战指南。文章深入剖析了选择MicroPython与RT1021这对组合的优势,详细讲解了从开发环境搭建、基础硬件控制(如GPIO、PWM、编码器、CCD)到系统集成(平衡控制、循迹算法)与多任务调试的全过程,旨在帮助参赛者降低嵌入式开发门槛,高效备赛。

wdx0123456的博客 843

用人话讲明白线性回归LinearRegression

目录 什么是回归 一元线性回归 损失函数 最小二乘估计 小结 1. 什么是回归 当我们学习一门新课程、接触一个新专业时,总会对该领域的专有名词感到困惑,甚至看完解释仍难以理解其含义。在我们一起学习machine learning的过程中,我会尽量对相关名词用“人话”做一遍解释,以减少学习的“痛苦感”。 譬如今天要学的线性“回归”,这个回归(regression)和我们平时说的“回归祖国”的回...

化简可得 1万+

java中的 |=、&=、^=

java中的 |=、&=、^= |= 运算符: public static strictfp void main(String[] args) { int a = 5; // 0000 0101 int b = 3; // 0000 0011 a |= b; // 0000 00111 System.out.println(a); } 具体规则为:两个二进制对应位为0时该位为0,否则为1。拿5的二进制 0000 0101 和 3的二进制 0000 0011 进行|运算,后三

lw_jack的博客 2052

C# WinForms 多语种切换实现:打造国际化应用程序

合理实现多语种切换功能可以显著提升应用程序的国际化水平。模块化设计:将本地化逻辑模块化,便于管理和维护。异常处理:始终捕获和处理可能的异常,确保程序的健壮性。资源管理:合理管理资源文件,避免重复和遗漏。测试:在不同语言环境下进行全面测试,确保所有字符串都能正确显示。文档和注释:为关键代码添加详细的文档和注释,便于后续维护。

墨夶的博客 1691

Java运算符详解

Java运算符 Java提供了一组丰富的运算符来操作变量,运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。我们可以将所有Java运算符划分为以下几个分类: 算术运算符 关系运算符(比较运算符) 按位运算符 逻辑运算符 赋值运算符 其他运算符 算术运算符 算术运算符在数学表达式中的使用方式与在代数中使用的方式相同。下表列出了算术运算符的使用示例 - 假设整数类型变量A的值为:10,变量B的值为:20,则 注:...

波哩个波的博客 2246

YOLOv8【第七章:损失函数篇·第1节】一文搞定,IoU系列损失函数!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 1196

打通ZYNQ的任督二脉:AXI_FIFO数据交互全解析

FIFO(First In First Out,先进先出)是一种经典的数据缓冲结构,就像排队买票一样,先来的人先得到服务。时钟域交叉(CDC):连接不同时钟频率的模块数据缓冲:平衡生产者和消费者的速度差异流量控制:防止数据丢失或溢出input clk,// 输入AXI4-Stream接口(从PS到PL)// 输出AXI4-Stream接口(从PL到PS)// 状态指示信号// 定义状态机状态// 数据缓存// 8个深度的缓存// 流水线处理寄存器。

QQ_778132974的博客 305

Java中的位运算

Java中,一个int的长度始终是32位,也就是4个字节,它操作的都是该整数的二进制数。也可作用于以下类型,即 byte,short,char,long(它们都是整数形式)。A:我当时遇到这个面试题的时候也是懵的,不知道这题的考点是啥,直接回答:创建一个临时变量,把其中一个变量赋值给临时变量,然后再把另一个变量赋值给这个变量,最后把临时变量赋值给另一个变量。实际采用位运算的方式是性能最好的,因为计算机对于计算数据的话,都是以二进制来进行运算的,所以使用位运算相比直接使用(+、-、

qq_46601365的博客 4666

ubuntu linux虚拟机安装部署openclaw详细教程(安装、问题处理)

本文详细介绍了在Ubuntu系统下安装OpenClaw AI助手的完整流程及常见问题解决方案。主要内容包括:1) 通过GIT、Node.js等基础环境配置;2) 使用官方脚本或源码编译两种方式安装OpenClaw;3) 配置向导中的关键选项说明;4) 针对systemctl服务启动失败等常见错误的处理方法。文章特别强调了权限管理、网络依赖和访问配置等易错环节,提供了修改service文件等具体解决方案,帮助开发者顺利完成部署并实现Web UI访问。教程实操性强,适合本地和云服务器环境部署参考。

少说,多做 2032

Java 位运算详解

目录 一、Java中支持的位运算 二、位运算规则 三、逻辑运算 (一)、与运算(&)   一、运算规则   二、运算流程 (二)、或运算(|)   一、运算规则   二、运算流程 (三)、异或运算(^)   一、运算规则   二、运算流程 (四)、取反运算(~)   一、运算规则   二、运算规则 四、位移操作   (一)、左移(<<)   (二)、右移(>>)   (三)、无符号右移(>>>) 一、Java中支.

rianple的博客 2万+

jre9下载 jdk9

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

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Java位运算

在位运算前,需要先了解二进制码相关知识,详情请见博主的另一篇博文:原码、反码、补码 Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节类型(byte)等类型。 Java包含了七种位运算符 位运算符 说明 >> 右移运算符,符号左侧数值 按位右移 符号右侧数值指定的位数,若为正数则高位补0,若为负数则高...

枣面包的博客 7920

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

位运算java_Java中的位运算

Java中的位运算,说实话,工作了两年的时间里,从来没有用过一次,因为平时都是些的是业务代码,很少接触比较底层的东西,我记得第一次在代码中看到还是在HashMap的Hash算法中看到的,这次重拾Java基础,着重理解了一下Java中的位运算,计算机中的运算一般都是操作反码进行运算,操作完成之后,再将结果的反码转化成原码,然后将二进制的结果转化成十进制输出出来,其实乘法和除法运算在计算机中都是通过位...

weixin_30467861的博客 403

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

JAVA的位运算

JAVA的位运算关键字: java 位运算Java 位运算 一,Java 位运算1.表示方法: 在Java语言中,二进制数使用补码表示,最高位为符号位,正数的符号位为0,负数为1。补码的表示需要满足如下要求。 (l)正数的最高位为0,其余各位代表数值本身(二进制数)。 (2)对于负数,通过对该数绝对值的补码按位取反,再对整个数加1。2.位运算符 位运算表达式由操作数和位运算符组成,实现对整数类型的二进制数进行位运算。位运算符可以分为逻辑运算符(包括~、&、|和^)及移位运算符(包括>>、

sun13212715744的博客 6631

java中的位运算

位运算是对整数的二进制位进行操作的一种运算。在java中long, int, short, char和byte类型都可以使用位运算。位运算的过程如下:首先将十进制整数转换成二进制表示形式,然后将位运算符应用于每个二进制数位,并计算结果。最后,将二进制结果转换回其十进制表示。位运算符有以下几种:与运算(&)、或运算(|)、异或运算(^)、取反运算(~)、左移(<<)、右移(>>)等。下面来分别看下每个运算。

sinat_16493273的博客 1307

java位运算

java中的位运算,涉及到计算机二进制,位用bit表示,1 byte=8bit,根据各种基本数据类型占用的字节空间,可以计算各种数据有多少位二进制,可以算出对应的取值范围。 java中的位运算包括:与(&)运算,或(|)运算,异或(^)运算,非(~)运算;以及移位运算:左移运算(<<),右移运算(>>),无符号右移运算(>>>),注意没有无符号左...

小蜜蜂1010的博客 3675

java 位运算

一、基础知识 1.要了解java中的位运算,要先看看每种类型占多少位,见下图 2.要知道10进制的数字怎么转为2进制的010101组合的,只需要知道为1的位序号即可。从高位往低位去寻找。 已知整数a,如果2**n&lt;a,并且2**n * 2&gt;a,那么最高位就是n(从第0位开始计数),然后将a-2**n的余数进行同样的运算,一直到最后剩1或者0(不是奇数就是偶数),是1的话说明...

肖波的博客 4372

java 位运算 高位_Java中的位运算

最近饶有兴致,看了一些java源代码,发现源码里面一些精巧的实现是通过位运算实现的,比如十进制整数转成十六进制形式字符串输出:1 public static String toHexString(inti)2 {3 return toUnsignedString(i, 4);4 }56 private static String toUnsignedString(int i...

weixin_39986543的博客 963

学习-Java位运算之逻辑位运算

第1关:学习-Java位运算之逻辑位运算 过关任务 参考答案 评论 任务描述 相关知识 位运算 逻辑位运算 与 & 位运算符 或 | 位运算符 非 ~ 位运算符 异或 ^ 位运算符 编程要求 测试说明 任务描述 本关任务:根据输入获取的位运算符和运算数完成相应运算。键盘第一次输入的值为四种位运算符的一种,类型为字符型;第二次输入的是变量 a 的值,类型为 int 型;判断第一次输入的为何种位运算符,计算变量 a 使用该运算符与常量 10 的值,如果

aiains的博客 1808

java位运算究竟有用么?

背景:java位运算除了课本上老师讲过,有时候面试的时候为了凸显高大尚,也会问些皮毛,难道真是一无是处么?本文主要从两方面进行叙述,什么是位运算,以及它的使用场景。 1    位运算简介 说明:  &lt;&lt;:左移一位相当于乘以2  (通用公式为n&lt;&lt;m  = n*2^m)              &gt;&gt;:右移一位相当于除以2  (通用公式为n&lt;&lt...

sky1988818的专栏 6213

java位运算详解,Java中的二进制及位运算详解

1.表示方法:在Java语言中,二进制数使用补码表示,最高位为符号位,正数的符号位为0,负数为1。补码的表示需要满足如下要求。(1)正数的最高位为0,其余各位代表数值本身(二进制数)。(2)对于负数,通过对该数绝对值的补码按位取反,再对整个数加1。位运算表达式由操作数和位运算符组成,实现对整数类型的二进制数进行位运算。位运算符可以分为逻辑运算符(包括~、&、|和^)及移位运算符(包括>&gt...

weixin_29886825的博客 1423
上一篇: 解读NIO Socket非阻塞模式
下一篇: 使用异或进行简单的密码加密
Reasonsoft
博客等级 码龄21年 6粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值