【问题标题】:Bit flags operation位标志操作
【发布时间】:2022-04-09 04:58:47
【问题描述】:

我正在查看一些格式规范,并且遇到以下情况:

如果(标志和 1){ ... }

现在,根据相同的文档旗帜是:

所以标志是3个字节。操作旗帜 & 1我想在标志和..之间进行按位运算? 1 以 24 位长的方式表示?有人可以再解释一下吗?谢谢!

    标签: byte bitwise-operators bit flags bitwise-and


    【解决方案1】:

    规范应该列出可用的标志,然后您可以使用各个位来打开/关闭它们。

    例如 Python ssl 模块有多个 constants 我们可以用来更改一些选项(标志)。

    让我们看看TLS 1.0 版选项已启用:

    >>> import ssl
    >>> ctx = ssl.create_default_context()
    >>> bin(ctx.options)
    '0b10000010010100100000000001010100'
    >>> int(ssl.PROTOCOL_TLSv1)
    3
    >>> bin(ssl.PROTOCOL_TLSv1)
    '0b11'
    >>> bool(ctx.options & ssl.PROTOCOL_TLSv1)
    False
    

    我们可以看到前两位(十进制的 3)没有设置,因此这个选项没有启用,所以让我们启用它:

    >>> ctx.options |= ssl.PROTOCOL_TLSv1
    >>> bin(ctx.options)
    '0b10000010010100100000000001010111'
    >>> bool(ctx.options & ssl.PROTOCOL_TLSv1)
    True
    

    我想这在你的情况下也有类似的目的。

    【讨论】:

    • 有点相似,但让我明白它是如何工作的!多谢 :)
    猜你喜欢
    • 2018-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    • 2019-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多