跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
GSXAB的知识库
搜索
搜索
外观
登录
个人工具
登录
Advertising:
查看“︁掩码”︁的源代码
页面
讨论
简体中文
阅读
查看源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
查看源代码
查看历史
刷新
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
←
掩码
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[分类:位运算]] {{InfoBox |name=掩码 |eng_name=mask |aliases=掩膜,位掩码,bit mask,bitmask }} 通过[[位运算]]“屏蔽”或“留下”数据的某些指定[[二进制位|位]]的操作称为'''掩码'''('''masking'''/'''bitmasking''')。 这一操作通过与按特定格式构造出的数据进行[[按位与]]实现,这个特定数据也被称为'''掩码'''('''mask''' / '''bit mask''')。 有时,通过这个掩码数据进行[[位设置]]、[[位清除]]、[[位反转]]的操作也被称为掩码操作。 == 定义 == 对二进制串 <math>b_1 b_2 \cdots b_n</math> ,若仅需要保留其中下标为 <math>j_1 j_2 \cdots j_r</math> 的位,并将其余的二进制位全部变成 0 ,可以构造二进制串 <math>m_1 m_2 \cdots m_n</math> ,其中 <math>m_i = \begin{cases} 1, i \in \{j_1,j_2,\cdots,j_r\} \\ 0, i\notin \{j_1,j_2,\cdots,j_r\} \end{cases}</math> ,令两二进制串进行按位与,则结果即为所需二进制串,这一操作称为'''掩码'''('''masking'''/'''bitmasking''')操作,构造出的二进制串 <math>m_1 m_2 \cdots m_n</math> 称为'''掩码'''('''mask''' / '''bit mask''' / '''bit mask''')。 注:掩码只是一种被构造的数据,其本质是要选中一些位。掩码操作本质上是仅保留这些选中的位,屏蔽其他的位。 注:也有的定义中掩码操作是仅屏蔽这些选中的位,保留其他的位。 == 使用 == 掩码操作通常指直接与掩码进行[[按位与]]操作,保留选中的位置并屏蔽其他的位的操作。进行掩码操作后,有两种情况,可以与 0 比较判断是否这些位全部是 0 ,或者与掩码本身比较判断是否这些位全部是 1 。 以下操作也需要使用掩码,因此也有人视其为掩码操作。 [[位设置]]:与掩码进行[[按位或]]运算,其结果表示将选中的位全部置 1 ,保留其他的位。 [[位清除]]:与掩码[[按位取反]]结果进行按位与运算,其结果表示将选中的位全部置 0 ,保留其他的位。 [[位反转]]:与掩码进行[[按位异或]]运算,其结果表示将选中的位全部反转,保留其他的位。 == 衍生 == [[IP 协议]]中每个 IP 地址中有一部分二进制位代表当前子网,[[子网掩码]]就是指定了这部分二进制位的掩码。 对二值图像的像素点进行位运算操作,可以设置、取消、反转指定的部分像素,这也称为 mask ,译作掩膜或遮罩层。 与掩膜不同,对灰度或彩色图像,图像的掩膜和遮罩层中每个像素点的取值可以不是二值的,通过类似模糊逻辑的方式作用于不同的数值。 处理中断时,用于屏蔽或通过某些位的中断掩码,就是选中了允许通过部分的掩码。 {{位运算}} == 琐事 == === 名称 === 一说“掩码”(mask)的词源是打孔卡片或打孔纸带机时代用于遮挡纸带指定位的额外卡片,通过遮住部分位的传感器,使得这些位被置为 0 ,仅继续取剩余的位。因此其中通过是 1 ,未通过是 0 。这种额外卡片字面地被称为遮罩(mask)、掩盖。后来被沿用到了二进制数据运算中。只是对于这种抽象的运算,现在翻译成掩码,即用于掩盖一些位的数码,或掩膜,即图像上掩盖一些像素点用的遮罩层。
返回
掩码
。
Advertising: