二进制运算解析

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

一 前言

小伙伴,你看代码的源码了吗?就比如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

三 结语

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

相关文章
|
26天前
|
存储 Java 开发者
【编程基础知识】 计算机中的数学魔法:二进制加减运算全解析
本文深入解析了计算机中二进制加减运算的原理,涵盖原码、反码和补码的概念及应用,结合具体示例,帮助读者理解计算机底层数学运算机制,适合Java开发者学习。
39 0
|
5月前
|
存储 SQL 算法
【源码解析】深入解析 pandas的Block 类中算术运算和重排实现
【源码解析】深入解析 pandas的Block 类中算术运算和重排实现
|
5月前
|
算法 数据可视化 数据挖掘
力扣136题全解析:寻找只出现一次的数字(哈希表与异或运算详解,附图解)
力扣136题全解析:寻找只出现一次的数字(哈希表与异或运算详解,附图解)
|
6月前
|
C语言
【C指针】深入理解指针(最终篇)数组&&指针&&指针运算题解析(一)1
【C指针】深入理解指针(最终篇)数组&&指针&&指针运算题解析(一)
199 51
|
5月前
|
消息中间件 API
【FreeRTOS(二)】FreeRTOS新手入门——计数型信号量和二进制信号量的基本使用并附代码解析
【FreeRTOS(二)】FreeRTOS新手入门——计数型信号量和二进制信号量的基本使用并附代码解析
|
5月前
|
人工智能 数据库
数据库关系运算理论:专门的关系运算概念解析
数据库关系运算理论:专门的关系运算概念解析
120 0
|
5月前
|
数据库
数据库关系运算理论:传统的集合运算概念解析
数据库关系运算理论:传统的集合运算概念解析
64 0
|
5月前
|
SQL 数据库 数据库管理
数据库关系运算理论:关系数据操作与关系完整性概念解析
数据库关系运算理论:关系数据操作与关系完整性概念解析
83 0
|
6月前
|
存储 安全 程序员
|
6月前
|
C语言 C++
C语言:指针运算笔试题解析(包括令人费解的指针题目)
C语言:指针运算笔试题解析(包括令人费解的指针题目)

推荐镜像

更多
下一篇
无影云桌面