Java常用运算符(&&,&,||,|,>>>等)计算和二进制转换

深入解析设计规则检查约束:set_max_transition与set_max_capacitance的实战应用 本文深入解析了芯片设计中的关键设计规则检查约束set_max_transition与set_max_capacitance。通过剖析信号转换时间与负载电容的原理,结合实战案例,阐述了如何设置约束以保障信号完整性、控制功耗与时序,并提供了在综合与布局布线阶段的应用策略与修复方法。 阅读详情

         此处主要是用于记录一下Java常用运算符计算方式,和十进制数与二进制数相互转换的方式,由于这些在日常开发中使用的比较少,时而会忘记,所有记录一下方便以后有迹可循.

此处直接上源码,相关说明写在了代码doc注释中:


/**
 * @author leitao.
 * @category
 * @time: 2019/9/16 0016-9:44
 * @version: 1.0
 * @description: Java &、&&、|、||、^、<<、>>、~、>>>等运算符
 * <p>
 * 十进制负数转二进制:
 * 示例:-5
 * 5的二进制:0000 0101 (原码)
 * 取反===>:1111 1010  (反码)
 * 反码加1=>:1111 1011 (补码) 补码就是负数在计算机中的二进制表示方法
 * 那么,1111 1011表示8位的-5,
 * 如果要表示16位的-5, 在左边添上8个1即可:1111 1111 1111 1011
 * <p>
 * 二进制负数转十进制:
 * 示例:1111 1101
 * 减一==> 1111 1100
 * 取反==> 0000 0011
 * 计算结果是:3
 * 那么这个二进制数表示的十进制数就是:-3
 **/
public class JavaOperator {

    public static void main(String[] args) {
        bitwiseAnd(3, 5);
        logicalAnd(true, false);
        bitwiseOr(3, 5);
        logicalOr(true, false);
        exclusiveOr(3, 5);
        leftShift(3, 5);
        rightShift(-5, 1);
        reverse(-5);
        unsignedRightShift(-5,1);
    }

    /**
     * 按位与:&
     * <p>
     * &按位与的运算规则是将两边的数转换为二进制位,然后运算最终值,运算规则即(两个为真才为真)1&1=1 , 1&0=0 , 0&1=0 , 0&0=0
     * 3的二进制位是0000 0011 , 5的二进制位是0000 0101 , 那么就是011 & 101,由按位与运算规则得知,001 & 101等于0000 0001,最终值为1
     */
    private static void bitwiseAnd(int a, int b) {
        int i = a & b;
        System.out.println(a + "&" + b + "=" + i);
    }

    /**
     * 逻辑与:&&
     * &&逻辑与也称为短路逻辑与,先运算&&左边的表达式,一旦为假,后续不管多少表达式,均不再计算,一个为真,再计算右边的表达式,两个为真才为真。
     */
    private static void logicalAnd(boolean a, boolean b) {
        boolean i = a && b;
        System.out.println(a + "&&" + b + "=" + i);
    }

    /**
     * 按位或:|
     * |按位或和&按位与计算方式都是转换二进制再计算,不同的是运算规则(一个为真即为真)1|0 = 1 , 1|1 = 1 , 0|0 = 0 , 0|1 = 1
     * 6的二进制位0000 0110 , 2的二进制位0000 0010 , 110|010为110,最终值0000 0110,故6|2等于6
     */
    private static void bitwiseOr(int a, int b) {
        int i = a | b;
        System.out.println(a + "|" + b + "=" + i);
    }

    /**
     * 逻辑或:||
     * 逻辑或||的运算规则是一个为真即为真,后续不再计算,一个为假再计算右边的表达式。
     */
    private static void logicalOr(boolean a, boolean b) {
        boolean i = a && b;
        System.out.println(a + "||" + b + "=" + i);
    }

    /**
     * 异或运算符:^
     * ^异或运算符顾名思义,异就是不同,其运算规则为1^0 = 1 , 1^1 = 0 , 0^1 = 1 , 0^0 = 0
     * 5的二进制位是0000 0101 , 9的二进制位是0000 1001,也就是0101 ^ 1001,结果为1100 , 00001100的十进制位是12
     */
    private static void exclusiveOr(int a, int b) {
        int i = a ^ b;
        System.out.println(a + "^" + b + "=" + i);
    }

    /**
     * 左移:<<
     * 5<<2的意思为5的二进制位往左挪两位,右边补0,5的二进制位是0000 0101 ,
     * 就是把有效值101往左挪两位就是0001 0100 ,正数左边第一位补0,负数补1,等于乘于2的n次方,十进制位是20
     */
    private static void leftShift(int a, int b) {
        int i = a << b;
        System.out.println(a + "<<" + b + "=" + i);
    }

    /**
     * 右移:>>
     * 凡位运算符都是把值先转换成二进制再进行后续的处理,5的二进制位是0000 0101,
     * 右移两位就是把101左移后为0000 0001,正数左边第一位补0,负数补1,等于除于2的n次方,结果为1
     */
    private static void rightShift(int a, int b) {
        int i = a >> b;
        System.out.println(a + ">>" + b + "=" + i);
    }

    /**
     * 取反: ~
     * 取反就是1为0,0为1,5的二进制位是0000 0101,取反后为1111 1010,值为-6
     */
    private static void reverse(int a) {
        int i = ~a;
        System.out.println("~" + a + "=" + i);
    }

    /**
     * 无符号右移:
     * 正数无符号右移
     * 无符号右移运算符和右移运算符的主要区别在于负数的计算,因为无符号右移是高位补0,移多少位补多少个0。
     * 15的二进制位是0000 1111 ,右移2位0000 0011,结果为3
     */
    private static void unsignedRightShift(int a, int b) {
        int i = a >>> b;
        System.out.println(a + ">>>" + b + "=" + i);
    }

}

 代码中示例计算结果:

3&5=1
true&&false=false
3|5=7
true||false=false
3^5=6
3<<5=96
-5>>1=-3
~-5=4
-5>>>1=2147483645

 

避开生产计划大坑:不懂MPS和MRP的区别,你的SAP PP模块白学了 本文深入解析SAP PP模块中MPS(主生产计划)与MRP(物料需求计划)的核心区别,揭示如何通过正确配置避免生产计划中的常见陷阱。文章详细探讨了MPS的三大缓冲特性和动态平衡算法,帮助企业提升生产计划稳定性,优化资源配置,避免生产线波动。 阅读详情

相关推荐

电子发票二维码背后的秘密:10分钟看懂校验码、加密字符含义与防伪设计

本文深入解析电子发票二维码的结构与防伪设计,揭示校验码和加密字符的生成原理及验证方法。通过实际案例和技术细节,帮助财务人员理解电子发票的安全机制,提升防伪识别能力,确保税务合规。

weixin_29248611的博客 530

【java】& 和 &&,| 和 ||

添加链接描述

wdy00000的博客 1967

无法找到来自源 nvlddmkm 的事件 ID 14 的描述

具体错误是: 无法找到来自源 nvlddmkm 的事件 ID 14 的描述。本地计算机上未安装引发此事件的组件,或者安装已损坏。可以安装或修复本地计算机上的组件。 出现这样错误的原因有很多了,有可能是硬件有可能是软件。由于我是刚配置的电脑,起初非常怀疑是自己组装的问题,折腾了好久,心态爆炸!!!先说我报这样错误的情况,以及解决办法,供后面人参考。 ...

SeventhBlue 6万+

java中运算符&与&&,|与||的区别

运算符&amp;与&amp;&amp;,|与||的区别 &amp; 和 | 既是逻辑运算符也是位运算符,而 &amp;&amp; 和 || 只是逻辑运算符。 &amp;&amp; 是逻辑与运算符,|| 是逻辑或运算符,都是逻辑运算符,两边只能是bool类型 &amp; 与 | 既可以进行逻辑运算,又可以进行位运算,两边既可以是bool类型,又可以是数值类型 区别: if (A &amp;&amp; B) 如果 A 为 false ,整个表达式就为 false,不再计算 B 的值了。 ...

王者生辉的博客 1017

手把手教你配置MCAL中的CAN模块:从基础参数到实战避坑指南

本文提供了一份详尽的MCAL CAN模块配置指南,涵盖从基础参数设置到实战避坑的全过程。文章深入解析了CAN控制器核心参数、硬件对象配置、数据流处理及常见问题排查,并结合源码分析,帮助嵌入式开发者构建稳定高效的CAN通信链路,是汽车电子领域通信开发的实用参考。

weixin_29165465的博客 336

爬取百度图片

最开始,我们想要爬取图片,首先需要打开百度图库,然后在搜索栏中输入自己想要的图片(比如说壁纸)。接着右键检查,点击网络:起初可能没有名称信息,刷新界面就可以了。打开信息,查看标头内容可以看到请求URL为:复制这串URL,然后在浏览器中打开这个就是我们搜索的壁纸图片的网页内容。怎么找到图片的URL呢?在上述内容中,找到data,可以发现里面每隔一个aiEditData,下面代码的形式是一样的,就相当于一张图片。

weixin_54143563的博客 1939

JAVA中 ^、&、|和位运算符的含义详解

^(异或运算符) |(或运算符) &(与运算符) (右移运算符) >>>(无符号右移运算符)

weixin_37583763的博客 2085

【数据同化第二期】数据同化中三大理论基础之一(最小方差估计)

【数据同化第二期】深入理解数据同化及经典案例(最小方差估计)

WW、forever的博客 1596

11 | 二进制编码:“手持两把锟斤拷,口中疾呼烫烫烫”?

11 | 二进制编码:“手持两把锟斤拷,口中疾呼烫烫烫”? 上算法和数据结构课的时候,老师们都会和你说,程序 = 算法 + 数据结构。如果对应到组成原理或者说硬件层面,算法就是我们前面讲的各种计算机指令,数据结构就对应我们接下来要讲的二进制数据。 众所周知,现代计算机都是用 0 和 1 组成的二进制,来表示所有的信息。前面几讲的程序指令用到的机器码,也是使用二进制表示的;我们存储在内存里面的字符串...

qyf__123的博客 2万+

计算机视觉与深度学习 | 基于Matlab的多特征融合可视化指纹识别系统(附完整代码)

此系统展示了一个完整的指纹识别流程,实际应用中可以根据需求进一步优化算法,如改进方向场计算、增加脊线频率特征、使用更精确的匹配算法等。

尘世冰封的专栏 360

openCv +3.4.0 车牌定位(C++版本)

#include &lt;iostream&gt; #include &lt;opencv2/core/core.hpp&gt; #include &lt;opencv2/highgui/highgui.hpp&gt; #include &lt;opencv2/imgproc.hpp&gt; #include "opencv2/shape.hpp" using namespace ...

Bamboo265925的博客 2337

java中操作二进制的运算符总结(&,| , ^, ~, <<,>>, >>> )

前言:面试的时候遇到面试题是考察操作二进制的,本来学习的时候就没有好好看哪一点内容,这下整个人都不好了。 于是回来整理了一下java关于操作二进制的一些操作符。知识点零:注意:java中所有的二进制操作符都是操作数字的补码---重要! 知识点一:& (与运算符)1.特点:二元操作符,操作两个二进制数据;两个二进制数最低位对齐,只有当两个对位数都是1时才为1,否则为0 2.案例: int a

xinghuo0007的博客 7416

GEE:基于 Landsat 数据集生成(1986-2024)月度合成地表温度(LST)时间序列数据

优快云@_养乐多_本文将介绍使用 Landsat 时间序列计算(1986-2024)月度合成地表温度(LST)时间序列数据集的代码。

养乐多的博客 1713

java或和且_Java &、&&、|、||、^、<<、>>、~、>>>等运算符

Java运算符大致分为逻辑运算符(&amp;&amp;,||,!)、算数运算符(+, -, *, / ,+=)、位运算符(^,|,&amp;)、其他运算符(三元运算符)不了解二进制运算的同学可以看我的另一篇有关于进制运算的&amp;(按位与)位运算符&amp;按位与的运算规则是将两边的数转换为二进制位,然后运算最终值,运算规则即(两个为真才为真)1&amp;1=1 , 1&amp;0=0 , 0&...

weixin_29733427的博客 2万+

STM32F407中文手册

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

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Java逻辑运算符"&","&&","|","||"

为什么80%的码农都做不了架构师?&gt;&gt;&gt; ...

weixin_34248849的博客 1166

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Java 运算符详解(&、&&、|、||、^、<<、>>、~、>>>)

Java运算符大致分为逻辑运算符(&amp;&amp;,||,!)、算数运算符(+, -, *, / ,+=)、位运算符(^,|,&amp;)、其他运算符(三元运算符) 不了解二进制运算的同学可以看我的另一篇有关于进制运算的 二进制运算 &amp;(按位与) public class Test{ public static void main(str[] arg){ int i = 3&amp;5;//1 int j = 5&amp;7;//5 .

小喵的博客 5866

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

java Int 二进制原理与 +、-、>>、>>>、^、&计算

Int 二进制 int 类型默认是有符号的,最高位 0 表示 正数, 1 表示负数。 例如:   5 的二进制:0101 ;   -5的二进制:1101 ; 原码、补码 反码 理解: a、原码:一个正数,按照绝对值大小转换成的二进制数;一个负数按照绝对值大小转换成的二进制数,然后最高位补1,称为原码 比如:   5 的原码 : 0101 ;   -5的原码: 1101 ; b、反码:正数的反码与原码相同,负数的反码为对该数的原码除符号位外各位取反。   5 的反码 : 0101 ;   -5的反码: 101

qq_37390527的博客 1215

java Int 二进制原理与 +、-、>>、>>>、^、&计算

java Int 二进制原理与 +、 -、 &amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;、&amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;amp;amp;amp;amp;gt;、&amp;amp;amp;amp;amp;amp;amp;amp

张井天的博客 6750

>>>运算符

java中有‘&gt;&gt;&gt;’运算符,表示无符号右移运算。简单来说:j&gt;&gt;&gt;i表示将数向右位移i位,右移后左边空出的位用0补上,具体细节如下:1、操作数类型:byte、short、int、long2、&gt;&gt;&gt;在右移的时候在二进制表示的左端添0,运算结果取决于其二进制表示。相同的byte、short、int类型运算数得到的结果相同,l...

weixin_34080571的博客 3155

java基础之运算符

在Java中,运算符是用于操作变量和值的符号,借助运算符能够对数据进行各类运算和操作。

m0_74847533的博客 1724

java一些运算符的使用~

1,~取反运算符 ~4 = -5 计算方法就是取反减一,~ -8 = -10; 2,&lt;&lt;,&gt;&gt;,&gt;&gt;&gt; &lt;&lt; 左移,8&lt;&lt;2 = 32运算方法就是8乘以2的二次方 “&gt;&gt;” 右移,8&gt;&gt;2 = 2运算方法就是8除以2的二次方 “&gt;&gt;&gt;” 无符号右移,8&gt;&gt;&gt;2 = 2运算方...

weixin_44221079的博客 965

Java笔记——Java 运算符(操作符)&amp;、&amp;&amp;、|、||、^、&lt;&lt;_java &amp;&amp;

因为在if的条件判断中,程序先判断第一个表达式3>2是否成立,结果3>2为真,那么按照逻辑来说,无论后面一个表达式(i++)>1是否成立,整个或表达式肯定为真,因此程序就不去执行判断后面一个表达式即(i++)>1了,所以这里i并没有自增1。则(++i==2)&&(j++==4)的结果为false,其过程基本上和上面的是相同的,但是若左侧表达式的值为false时,程序则不会继续判断右侧表达式的真假了,短路与中,短路这个词大概也就是这个意思吧。2,两个操作数的位中,相同则结果为0,不同则结果为1。

a25847a的博客 890

java的运算符以及二进制相关知识

java里面也有自增自减! 注意,取模的本质就是 res = a - a / b * b,这样就会分析正负号了! 面试: 观察字节码.class文件,就明白原理了 2. 关系运算符 两者在运算结果上没有区别,但是短路与在第一个条件为false的时候,就不会再进行后面条件判断,所以效率更高,开发上通常使用短路逻辑运算符。类似的,第一个条件为true时,短路或就不进行后面的条件判断了,但是逻辑或会继续判断,所以短路或效率高,我们通常使用短路或。

qq_48973099的博客 2091

&与&&有什么区别?

 一、简要说明按位与:a&b是把a和b都转换成二进制数然后再进行与的运算;逻辑与:a&&b就是当且仅当两个操作数均为 true时,其结果才为 true;只要有一个为零,a&&b就为零。 例如: a&b  9&8 1001 1000 结果是1000 a&&b  9&&8 结果是1&对每一个都判断;&&只要前面是false就输出false,而不继续判断后面了  二、详细解释

木木 19万+

java运算符

运算符是什么呢?其实这个问题很简单,运算符在我们的生活中很常见,失去了它,我们的数学基本报废了,像“+ , - ,* , /”都是我们最基本的运算符。即:对操作数进行操作时使用的符号,不同操作符的含义各不相同。

huyiju的博客 817

Java 运算符(操作符)&、&&、|、||、^、<<

1、Java中&amp;叫做按位与,&amp;&amp;叫做短路与,它们的区别是: &amp; 既是位运算符又是逻辑运算符,&amp;的两侧可以是int,也可以是boolean表达式,当&amp;两侧是int时,要先把运算符两侧的数转化为二进制数再进行运算,而短路与(&amp;&amp;)的两侧要求必须是布尔表达式。举例如下: 12&amp;5 的值是多少?答:12转成二进制数是1100(前四位省略了),5转成二进制数是0101,则运算后的结果为0100即4 这是两侧为数值时; 若 int i = 2,j

这里是菠萝味菠萝啤的博客 1万+
上一篇: Spring boot2 整合 spring-data-elasticsearch
下一篇: MySQL同一事务中先更新在查询,结果与数据库中不一致问题
涛濤
博客等级 码龄12年 136粉丝 92原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值