美文网首页
关于位掩码的有趣小实验及其应用

关于位掩码的有趣小实验及其应用

作者: 好大一只免孑 | 来源:发表于2021-01-09 18:53 被阅读0次

其实网上很多大佬有写这个啦,但是自己觉得很有趣就决定叭叭一篇博客出来,为了方便看就用pad画图了。写的很浅显,没什么大作用就是觉得很好玩(:-)∠L)

位掩码其实就是应用位运算来实现一些复杂的操作,利用二进制的0和1来实现。

比如很有名的小白鼠试毒问题。
假设有八杯水。有一杯水有毒,小白鼠喝下24小时后会死,现在需要在24小时内检验出哪杯水有毒。问题:需要几只小白鼠?怎么检验?

这是一个典型的利用位掩码处理的问题。根据题目条件,必须利用小白鼠的死亡情况一次检测出哪杯水有毒。问题的处理方式如下:

我们将八杯水编号为1-8,每杯水用二进制表示,将每列的混合水分别喂给ABCD四只小白鼠。比如A鼠将喝下八号水,而C鼠将喝下4/5/6/7的混合水:

示意图
24小时后记录小白鼠的死亡状态。
比如AC小鼠存活,BD小鼠死亡,那么我们可以得到一串二进制:0101
即可知道5号水有毒。

如果设定一千杯水中有一杯有毒,则需要10小白鼠,原理与上面描述类似。

下面介绍下位掩码在实际中的应用:
比如,我们设立一个OA系统,它的基本功能是增,删,改,查,那么我们定义每个用户的权限可以写成:

var user = 
{
  add: true,
  delete: false,
  update: false,
  search: true
};

但如果用位掩码,设立一个四位的二进制数,其第一位为1表示add权限,第二位为1表示删除权限,以此类推。在表示某一用户拥有某些权限时就会变得非常省事。

具体更多的应用及描述可以参考一下这个文档
https://blog.csdn.net/weixin_42856903/article/details/104357501

相关文章

  • 关于位掩码的有趣小实验及其应用

    其实网上很多大佬有写这个啦,但是自己觉得很有趣就决定叭叭一篇博客出来,为了方便看就用pad画图了。写的很浅显,没什...

  • 位掩码(Bit Mask)的应用

    刚开始做java,本文的也是以一个小白的角度,所以不足之处还请谅解。 书归正传,先说下背景,项目中需要添加一个功能...

  • 子网划分及子网掩码计算方法

    子网划分及子网掩码计算方法 一、子网掩码的概述及作用 子网掩码是一个应用于TCP/IP网络的32位二进制值,每节8...

  • 子网划分及子网掩码计算方法

    一、子网掩码的概述及作用 子网掩码是一个应用于TCP/IP网络的32位二进制值,每节8位,必须结合IP地址对应使用...

  • 子网划分及子网掩码计算方式

    概述 1.子网掩码是一个应用于Tcp/Ip网络的32位二进制值,每节8位,必须结合IP地址对应使用。 2.子网掩码...

  • 位运算及其应用

    内容概要: 位运算基本操作 基于位运算的状态压缩 位运算经典应用 位运算解N皇后问题 位运算 符号描述规则&与1&...

  • 尝试使用位掩码Mmm...mask!

    说到mask掩码你会想到什么?子网掩码?没错,那也是掩码,但实际上掩码技巧在我们平时的应用中也可以让你有意想不到的...

  • 有趣的小实验

    今天我和爸爸一起做了个有趣的小实验,首先在一个有透明盖子的锅里倒入凉水,然后打开煤气加热。 有趣的...

  • 有趣的小实验

    寒假的一天,爸爸神秘分兮的和我玩起了“浸不湿的纸”的实验。 爸爸拿出了提前准备好的一张卫生纸、一个杯子...

  • 有趣的小实验

    今天晚上,我和妈妈做了一个实验.我们拿来一根长蜡烛,一个短蜡烛,一个打火机和一个杯子,我们先点燃一根长蜡烛...

网友评论

      本文标题:关于位掩码的有趣小实验及其应用

      本文链接:https://www.haomeiwen.com/subject/kkrcaktx.html