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

本文介绍了如何使用Rust编程语言进行位运算,包括与、或、异或、非运算及位移运算,并探讨了这些运算在操作系统中的应用,如计算2的N次幂、位合并与提取等。此外,还讨论了位掩码(BitMask)的概念,并展示了如何为不同整数类型实现位操作的trait。
摘要由CSDN通过智能技术生成


上一篇文章中我们实现了两个基础的宏 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 = 0 =0 =0

简化后

0 0

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值