首页 > 编程语言 >java----------------------按位运算

java----------------------按位运算

时间:2024-03-26 17:26:37浏览次数:28  
标签:java 运算 二进制 0101 1111 按位 ---------------------- 0000

在日常开发中位运算不会很常用到,如果能够巧妙的使用位运算可以大量减少运行开销,优化算法。在java中一共有七种位运算符

1.&:按位与

两个操作数对应位同为1时,结果为1,其余全为0。(或者是只要有一个操作数为0,结果就为0)。

将2个操作数和结果都转换为二进制进行比较:
5转换为二进制:0000 0000 0000 0000 0000 0000 0000 0101
3转换为二进制:0000 0000 0000 0000 0000 0000 0000 0011

1按位与运算后:0000 0000 0000 0000 0000 0000 0000 0001


System.out.println(5&3);

2.|:按位或

两个操作数对应位同为0时,结果为0,其余全为1。(或者是只要有一个操作数为1,结果就为1)。

5转换为二进制:0000 0000 0000 0000 0000 0000 0000 0101
3转换为二进制:0000 0000 0000 0000 0000 0000 0000 0011

7按位或运算后:0000 0000 0000 0000 0000 0000 0000 0111
System.out.println(5 | 3);//结果为7

3.~:按位非

第n位为1,那么按位非的结果是第n位变为0,反之亦然。

System.out.println(~5);//结果为-6

5转换为二进制:0000 0000 0000 0000 0000 0000 0000 0101

-6按位非运算后:1111 1111 1111 1111 1111 1111 1111 1010

补:有朋友对这里-6怎么算的不太理解,我简单解释一下:

5的2进制表示(假设只用4比特表示,最高比特为符号位)是0101,0101按位取反后是1010。1010是补码,取反(符号位不变)加1后就是原码。取反后是1101,加1后是1110(是10进制的-6),所以~5等于-6。

 

标签:java,运算,二进制,0101,1111,按位,----------------------,0000
From: https://www.cnblogs.com/hellotoworld/p/18097115

相关文章

  • NVIDIA 创始人黄仁勋谈创建公司的最初6个月 —— 不要去写商业计划书
    地址:https://www.youtube.com/watch?v=yU3GUHDf0mk......
  • 聊聊多模态大模型处理的思考
    转载请注明出处:https://www.cnblogs.com/zhiyong-ITNote多模态:文本、音频、视频、图像等多形态的展现形式。目前部门内业务要求领域大模型需要是多模态——支持音频/文本。从个人思考的角度来审视下,审视下多模态大模型的实现方式。首先就要区分输入与输出,即输入的模态与输出......
  • Go使用rocketmq实现分布式事务-demo
    本示例只是demo,没有接入mysqlrocketmq自行安装severpackagemainimport( "context" "fmt" "github.com/apache/rocketmq-client-go/v2" "github.com/apache/rocketmq-client-go/v2/primitive" "github.com/apache/rocketmq-clien......
  • 【一】了解计算机的原理以及Python
    【一】编程和编程语言是什么【1】什么是编程编程其实就是将人类的语言转换为计算机能识别的语言【2】什么是编程语言人和人之间都会进行交流人和人之间交流的媒介就是语言编程语言就是人与计算机之间进行交流的语言【3】为什么要出现编程语言最根本的原因就是计算机......
  • 项目-Air780阿里云报警板测试说明
     程序下载1,打开这节的程序 2,在阿里云物联网平台上注册产品和添加设备,点击查看设备   2,根据查看的信息修改程序  3,打开Luatools 4,打开Luatools 5,创建一个项目,名随意  6,选择底层core  7,选择程序   8,下载程序(第一次......
  • 交换原理
    交换原理数据在计算机网络中从源到目的地,中间要经过链路以及交换节点交换节点有链路层交换机(Switch)以及路由器(Router)数据具体是如何进行交换的?计算机和因特网开端可以追溯到电话网,一种采用电路交换的通信网络,然后由于计算机和因特网的发展,其用户产生的流量具有突发性,即活动的......
  • 子网划分
    1、子网划分的原因满足不同网络对IP地址的需求;实现网络的层次性;节省IP地址。IP地址分为:有类地址;无类地址2、子网划分VLSM:允许把子网继续划分为更小的子网掩码对应的子网数:1)先根据IP地址的有类类型来判断n的值(A类为掩码-8,B类为掩码-16,C类为掩码-24)        ......
  • 探寻UUID的起源与奥秘:从时间戳到唯一标识
    1.UUID起源与原理UUID(UniversallyUniqueIdentifier)是一种唯一标识符,最初由Apollo计算机公司的软件工程师RoedyGreen在1987年提出。其原理是基于时间戳、节点标识、时钟序列和随机数生成唯一标识。UUID/GUID生成器|一个覆盖广泛主题工具的高效在线平台(amd794.com)htt......
  • Linux V4l2简单使用
    V4L2:VideoforLinuxtwo,缩写Video4Linux2,是Linux内核中的一个框架,提供了一套用于视频设备驱动程序开发的API。它是一个开放的、通用的、模块化的视频设备驱动程序框架,允许Linux操作系统和应用程序与各种视频设备(如摄像头、视频采集卡等)进行交互。V4L2提供了通用的API,使......
  • 【VMware ESXi】HP Z4G4 Workstation安装ESXi停留在Shutting down firmware services.
    家里有台HPZ4G4Workstation工作站,底层安装运行了VMware的ESXiHypervisor,作为Homelab的Allinone环境。之前安装ESXi8的时候有个问题,在启动ESXi安装阶段,一直停留在“Shuttingdownfirmwareservices...”这个地方。我知道可能大多数人遇到的问题都是如下报错,解决方法也是......