Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何掩码比特?

如何掩码比特?
EN

Stack Overflow用户
提问于 2017-02-13 21:32:22
回答 2查看 239关注 0票数 1

我有一个字节,它的二进制值是11111111。根据这些规则,我必须将我的字节扩展到16位0101010101010101 :如果位= 1,那么现在是01。如果位= 0,则现在是10。

例如:

代码语言:javascript
运行
AI代码解释
复制
00001111 -> 1010101001010101
00000101 -> 1010101010011001

执行此操作的操作是什么?

EN

回答 2

Stack Overflow用户

发布于 2017-02-13 21:56:20

首先,将您的字节转换为int:

代码语言:javascript
运行
AI代码解释
复制
int x = (int)byte_value;

然后,扩展到16位,方法是一次移位4位,然后移位2位,然后移位1位,然后使用移位和逐位OR将每个位加倍:

代码语言:javascript
运行
AI代码解释
复制
x = ((x << 4) | x) & 0b0000111100001111;
x = ((x << 2) | x) & 0b0011001100110011;
x = ((x << 1) | x) & 0b0101010101010101;
x = (x << 1) | x;

然后,掩码比特,如果比特是1,则偶数比特位置为1,如果比特是0,则奇数位置为1(使用逐位NOT):

代码语言:javascript
运行
AI代码解释
复制
x = (x & 0b0101010101010101) | (~x & 0b1010101010101010);
票数 1
EN

Stack Overflow用户

发布于 2017-02-13 21:45:46

我不认为有一个运算符可以像描述的那样“扩展”比特。但是,您可以在循环中进行移位和测试,如下所示:

代码语言:javascript
运行
AI代码解释
复制
unsigned char b = 0xff;
unsigned int result = 0x0;

for (int i=0; i<8; i++) {
    result <<= 2;  // make place for the next 2 bits

    int isSet = b & 0x80; // check highest significant bit of b
    if (isSet) {
        result |= 0x01;  // in bits: 01
    }
    else {
        result |= 0x02; // in bits: 10
    }

    b <<= 1;
}

希望能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42213947

复制
相关文章
如何理解掩码、反掩码、通配符「建议收藏」
一、掩码 在掩码中,1表示精确匹配,0表示随机 1和0,永远不交叉; 1永远在左边,0永远在右边; 在配置IP地址以及路由的时候,会使用掩码; 二、反掩码 在反掩码中,1表示随机,0表示精确匹配 0和1,永远不交叉; 0永远在左边,1永远在右边; 在路由协议的配置中,通过network命令进行网段宣告时,会使用 三、通配符 在统配符中,1表示随机,0表示精确匹配 0和1的位置,没有任何的固定限制 可以连续,可以交叉 在ACL中,使用的通配符 通配符掩码表
全栈程序员站长
2022/09/09
3K0
如何计算子网掩码
本文提供视频讲解,详细见:(https://www.bilibili.com/video/BV1oT4y17745)
研究僧
2020/07/12
6.1K0
掩码、通配符与反掩码
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/161565.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/09
7640
掩码、通配符与反掩码
反掩码与通配符掩码[通俗易懂]
掩码我们学数通的应该都很熟悉,我们刚刚学习IP的时候肯定都学过,这里就不在叙述。
全栈程序员站长
2022/09/15
4.2K0
反掩码与通配符掩码[通俗易懂]
什么是子网掩码?超过254个ip地址如何设置子网掩码?
对于ip地址我们前面通过多次文章,大家都有一定的理解,不过通过的留言,有部分朋友还是对子网掩码、ip地址的网段有些疑问,那么今天我们一起来解下这方面的内容。
网络技术联盟站
2023/03/13
3.3K0
什么是子网掩码?超过254个ip地址如何设置子网掩码?
通配符掩码
在访问控制列表中,通配符掩码来指定主机、特定网络或网络的一部分,首先要理解块大小,其用于指定地址范围
全栈程序员站长
2022/09/07
9820
如何购买比特币,比特币的价值何在?
对于不玩游戏的人来说,刚一听到比特币这个名字还以为是和游戏币的价值差不多,只能在游戏里使用的虚拟货币,经过稍微的了解后发现原来比特币现下这么火还是有一定的原因的。如何购买比特币,比特币的价值何在?来了解一下吧!
用户8739990
2021/07/12
9620
如何购买比特币,比特币的价值何在?
子网掩码和通配符掩码的区别
说白了子网掩码的工作原理就是,它拥有和主机IP地址一样的位数,每一位与对应的ip地址位进行“与”操作,得出的结果就是主机所在的子网,打个比方,192.168.1.1 255.255.255.0这是一个标准的C类网络,子网掩码/24,所以它的网络位也就是所在的子网就是192.168.1.0,计算过程如下:
全栈程序员站长
2022/09/15
1.2K0
彻底澄清子网掩码、反掩码、通配符掩码以及ospf network命令误区
示例1:deny ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
全栈程序员站长
2022/09/09
2.6K1
彻底澄清子网掩码、反掩码、通配符掩码以及ospf network命令误区
理解通配符掩码
通配符掩码是一个32位比特数,以点分十进制表示,告诉路由器数据包IP地址的哪些比特需要和access-list命令中给定的IP地址相匹配。
全栈程序员站长
2022/09/15
1.2K0
网络号 IP地址 子网掩码如何计算
1.Internet上每一台计算机都有唯一的地址来标识它的身份,即IP地址,使用域名其实也是要转化为IP地址的。
双面人
2019/06/02
4.3K0
子网掩码,反掩码与通配符之间的区别
1:子网掩码与反掩码的区别: 反掩码就是通配符掩码 通过标记0和1告诉设备应该匹配到哪位copy。 由于跟子网掩码刚好相zd反,所以也叫反掩码 例如掩码是255.255.255.0 wildcard-mask 就是0.0.0.255 255.255.255.248 反掩就是0.0.0.7 2:通配符掩码,ospf和Acl这儿用通配符掩码也不是每家的交换机都这么做,像cisco 3550就是用的子网掩码,所以不是一定的。
全栈程序员站长
2022/09/09
1.2K0
不改变比特币, 如何扩容?
在过去的十年中,对于行业论坛和从业媒体来说,扩容一直是永恒的主题。在这篇文章中,我将假设过去十年中一直被人们谈论的扩容方案,都没有命中要害,我将提出另一种框架。我认为,「机构式扩容」是一个被忽视了的扩容方向,而且它的实现很有可能不需要损害比特币的可靠性。
区块链大本营
2019/05/14
7270
不改变比特币, 如何扩容?
什么是通配符掩码
通配符掩码(Wildcard Mask) — 通配符掩码(Wildcard Mask)是一个32位的数量,用在与一个IP地址的联合上来决定在一个IP地址的那个位应该不忽略,在将那个地址与另一个IP地址相比时。一个通配符掩码在设置接入列表时被指定。
全栈程序员站长
2022/09/15
1.6K0
Signal之掩码操作
Kernel里,每个Task都有针对Signal的掩码(Mask)。掩码值为1表示拦截该Signal,即不处理Signal;掩码值为0表示会处理该Signal。而且默认情况下每个Task都会处理发给自己的Signal,只不过默认的处理方案是SIG_IGN(丢弃/忽略)。因此,要对Signal有所反应,就需要手动挂接Signal的处理机制了。今天看看Mask相关的操作
Taishan3721
2020/07/06
1.7K0
子网掩码详解
参考博客:https://blog.csdn.net/jason314/article/details/5447743
梅花
2022/05/11
2.2K0
你到底该如何看待比特币?
导 语 上周末的大跌,让许多比特币的反对者站了出来,许多人又开始大肆唱空比特币,新闻铺天盖地,其中最著名的应该算是人民日报头版《颠倒众生的比特币将载入金融史》更是被广为流传。其实币圈的老鸟们根本没当回事,这不,立马又涨回10万了,只是可怜了许多新韭菜,不知道他们现在做何感想...... 本来不打算再谈关于比特币是否有价值等这些问题,只是看到最近有大批新人入圈,又逢本次的大幅震荡,还是把这个问题拿出来再跟大家分享一次,因为大部分人还是不会出门左转这个操作。 A 两个问题的答案 首先,两个新人最常问到的
企鹅号小编
2018/01/23
9290
你到底该如何看待比特币?
子网掩码是什么 子网掩码的计算方法
如今,互联网已经走进千家万户,基本上每家每户都会安装一个WiFi,有的人家里甚至安装两个。安装过无线网络的朋友都知道,路由器在刚开始使用时需要进行设置。而在设置时,大家都会看到设置界面的子网掩码栏。那么究竟什么是子网掩码?这是怎么得出来的呢?下面就来为大家介绍一下。
用户8739990
2021/07/12
2.2K0
子网掩码是什么 子网掩码的计算方法
通配符和通配符掩码
  在路由器的配置中,经常出现通配符。和子网掩码一样,都是以“0”或“1”表示,不过与子网掩码所表示的意思却不一样。
全栈程序员站长
2022/09/15
1.7K0
通配符掩码的计算
我不太清楚通配符掩码具体是怎么定义的,但是在大多数初学者的印象中通配符掩码就是子网掩码取反,在网上搜索了一下也没有什么具体解释,下面是摘自百度百科的解释:
全栈程序员站长
2022/09/15
6560

相似问题

比特掩码技术

30

用掩码交错比特

50

有趣的比特掩码形成

34

Bitfield VS.比特掩码

20

来自掩码的均匀随机比特

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档