二进制运算解析

本文涉及的产品
云解析DNS,个人版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 二进制运算解析

一 前言

小伙伴,你看代码的源码了吗?就比如HashMap的源码,我想工作几年的都应该看过,但里面涉及的二进制的基础知识你真的懂吗? 比如与运算,或运算,非运算,& | 这东西,计算时千万别说他是逻辑运算符。

二 运算符

  1. 与运算符(&)
    预算规则:

       0&0=0;0&1=0;1&0=0;1&1=1
    

    即:两个同时为1,结果为1,否则为0

    例如:3&5

    十进制3转为二进制的3:0000 0011

    十进制5转为二进制的5:0000 0101

    ------------------------结果:0000 0001 ->转为十进制:1

    即:3&5 = 1
    与运算符,由于二进制上如果两个有一个不是1 那么就归零,所以他就可以有效的在两个数值运算后降低除数的值,源码中是有这么干的。

  2. 或运算(|)

    运算规则:

       0|0=0;  0|1=1;  1|0=1;   1|1=1;
    

    即 :参加运算的两个对象,一个为1,其值为1。

    例如:3|5 即 00000011 | 0000 0101 = 00000111,因此,3|5=7。

    1. 异或运算符(^)

      运算规则:

      0^0=0;  0^1=1;  1^0=1;   1^1=0;
      

      即:参加运算的两个对象,如果两个位为“异”(值不同),则该位结果为1,否则为0。

      例如:3^5 = 0000 0011 | 0000 0101 =0000 0110,因此,3^5 = 6

三 结语

使用运算符可以增加算法的处理速度,但是在平时开发中还是很少看到的,在底层算法中应用就十分广泛了,了解他们之后才能更好的看源码哦小伙伴

相关文章
|
19天前
|
存储 SQL 算法
【源码解析】深入解析 pandas的Block 类中算术运算和重排实现
【源码解析】深入解析 pandas的Block 类中算术运算和重排实现
|
19天前
|
算法 数据可视化 数据挖掘
力扣136题全解析:寻找只出现一次的数字(哈希表与异或运算详解,附图解)
力扣136题全解析:寻找只出现一次的数字(哈希表与异或运算详解,附图解)
|
11天前
|
消息中间件 API
【FreeRTOS(二)】FreeRTOS新手入门——计数型信号量和二进制信号量的基本使用并附代码解析
【FreeRTOS(二)】FreeRTOS新手入门——计数型信号量和二进制信号量的基本使用并附代码解析
|
1月前
|
C语言
【C指针】深入理解指针(最终篇)数组&&指针&&指针运算题解析(一)1
【C指针】深入理解指针(最终篇)数组&&指针&&指针运算题解析(一)
186 51
|
1月前
|
存储 安全 程序员
|
1月前
|
C语言 C++
C语言:指针运算笔试题解析(包括令人费解的指针题目)
C语言:指针运算笔试题解析(包括令人费解的指针题目)
|
1月前
|
编译器
【C指针】深入理解指针(最终篇)数组&&指针&&指针运算题解析(一)3
【C指针】深入理解指针(最终篇)数组&&指针&&指针运算题解析(一)
|
1月前
|
编译器
【C指针】深入理解指针(最终篇)数组&&指针&&指针运算题解析(一)2
【C指针】深入理解指针(最终篇)数组&&指针&&指针运算题解析(一)
|
1月前
|
Java
Java 数学运算与条件语句全解析
Java 的 Math 类 拥有许多方法,允许您在数字上执行数学任务。 常用方法: Math.max(x, y): 找到 x 和 y 的最大值 Math.min(x, y): 找到 x 和 y 的最小值 Math.sqrt(x): 返回 x 的平方根 Math.abs(x): 返回 x 的绝对值 Math.random(): 返回一个介于 0.0 和 1.0 之间的随机数
60 1
|
10月前
|
设计模式 Java Spring
这个无敌设计,可以解析并运算任意数学表达式
下面用解释器模式来实现一个数学表达式计算器,包含加、减、乘、除运算。 首先定义抽象表达式角色IArithmeticInterpreter接口。
76 0

热门文章

最新文章

推荐镜像

更多