使用Rust编写操作系统(位运算)

位运算

  • 位运算
    • 与运算
    • 或运算
      • 兼或
      • 异或
    • 非运算
    • 位移运算
  • 位运算的用途
    • 计算2的N次幂
    • 合并位
    • 提取位
    • 大小写转换
    • BitMask
      • 设置状态
      • 清楚状态
      • 判断状态
  • 开始干活
    • 使用宏
    • 开始测试
  • 接下来要做什么

在 上一篇文章中我们实现了两个基础的宏 printprintln在本节中我们需要开始编写常用的函数,在编写之前我们需要掌握一些位的运算知识

位运算

我们知道计算机中采用二进制数表示,其中每个二进制数字称为位(bit)取值范围为0或1

我们主要提及一些常用的位运算,如果想看二进制的资料请参阅我们的前一篇文章

与运算

我们现在有一个命题天空是蓝色的这个命题是真命题,接着我们还有一个命题晴朗的天空中云是白色的显然这个命题也是一个真命题,接下来我们将两个命题连接在一起,天空是蓝色的并且晴朗的天空中云是白色的这两个命题使用并且连接在一起依旧是真命题,我们使用True和False表示一个命题的增加,True表示真命题,False表示假命题

现在我们切换一下思维,在计算机中,二进制可以由1和0表示,那么我们可以使用1表示True,False表示0,上述命题可以转换为以下形式我们设天空是蓝色的命题为命题A天空是蓝色的并且晴朗的天空中云是白色的为命题B,下面我们可以以下形式表示两个命题的组合

A A A a n d and and B B B = 1 = 1 =1

A和B都是真命题,因此我们可以简化为

1 1 1 a n d and and 1 1 1 = 1 1 1

好了,我们的命题A发生了一些变化天空是绿色的这命题显然不是真命题,可以使用False表示,我们重新连接两个命题

天空是绿色的并且天空是蓝色的并且晴朗的天空中云是白色的我们的命题本身已经不是真命题了,因此我们可以得到

A A A a n d and and B B B = 0 =0 =0

简化后

0 0 0 a n d and and 1 1 1 = 0 =0 =0

我们在将命题B改为天空的云是彩色的这样两个命题都是假命题了根据以上的逻辑我们可以得到

A A A a n d and and B B B

你可能感兴趣的:(使用Rust开发操作系统,Rust,位运算,操作系统)