前言
在学习框架源码底层时,有非常多的二进制运算,由于大学学习计算机基础时开小差,没有学习牢固,所以在看底层源码的算法逻辑时遇到二进制运算比较吃力,遂通过一篇博文来总结下二进制运算,记录一下。
读者认真阅读完整片文章,看完如果还不懂可以来砍我~
正文
1. 二进制基础
因为计算机底层是通过二进制来进行计算的,所以在计算机底层会将十进制转换为二进制。十进制就是逢10进1,二进制就是逢2进1。
就十进制来说,比如一百可以分为三位,个位、十位、百位, 用位数在下列表示 101这个十进制数。
| 百位 | 十位 | 十位 |
|---|---|---|
| 1 | 0 | 1 |
因此对于十进制来说,越往上进制位越大,比如千位、万位。
同理,对于二进制来说也有对应位数, 如果表示二进制的4。
| 4(2^2) | 2(2^1) | 1(2^0) |
|---|---|---|
| 1 | 0 | 0 |
1 * 4 + 2 * 0 + 1 * 0 = 4
如果要表示二进制的5,则如下图
| 4(2^2) | 2(2^1) | 1(2^0) |
|---|---|---|
| 1 | 0 | 1 |
4 * 1 + 2 * 0 + 1 * 1 = 5
如果要表示二进制的11,则如下图
| 8(2^3) | 4(2^2) | 2(2^1) | 1(2^0) |
|---|---|---|---|
| 1 | 0 | 1 | 1 |
8 * 1 + 4 * 0 + 2 * 1 + 1 * 1 = 11
在计算机中,1字节有8位二进制位。
2. 二进制运算
在计算机系统中,二进制运算包括了二进制逻辑运算和二进制算术运算,而逻辑运算和算术运算的主要区别在于,逻辑运算是按位进行,不像算术运算中位与位之间有进位和借位的联系。下面介绍的与、或、异运算就属于二进制的逻辑运算。
2.1 二进制逻辑运算
对于二进制的逻辑运算,记住一个口诀:
-
与(&)运算
运算规则:
0&0=0, 0&1=0, 1&0=0, 1&1=1二者为1则为1,否则都为0。
-
或(|)运算
运算规则:
0|0=0,0|1=1,1|0=1,1|1=1遇1则1,否则为0。
-
异(^)或运算
运算规则:
0^0=0, 1^0=1, 0^1=1, 1^1=0同为0,异为1。
由于算术运算中会设计符号数的运算,所以先介绍二进制中的源码、补码以及反码。

本文深入探讨了二进制运算的基础知识,包括二进制逻辑运算、算术运算及源码、补码、反码的概念与转换。通过具体示例,讲解了移位运算符的应用,并分析了开源框架中二进制运算的实际使用。
最低0.47元/天 解锁文章
4322

被折叠的 条评论
为什么被折叠?



