Julia-Lang 文档中有这一段:
目前,仅支持 8 位倍数的大小。因此,布尔值虽然实际上只需要一位,但不能声明为小于八位。
首先,可以看一下变量的二进制表示形式,如下所示:
julia> bits(Int(10))
"00000000000000000000000000001010"
Run Code Online (Sandbox Code Playgroud)
其次,可以直接使用二进制形式创建字节值:
julia> val=0b100
0x04
julia> typeof(val)
UInt8
Run Code Online (Sandbox Code Playgroud)
最后,更改位值的最佳方法是对其字节值执行正确的二进制运算:
julia> val | 0b10 # set 2nd bit
0x06
julia> bits(ans)
"00000110"
julia> val & 0b11111011 # clear 3nd bit
0x00
Run Code Online (Sandbox Code Playgroud)
我假设您想要清除、设置和检查字节中特定位的状态。
\n\n在哪里:
\n\nN代表所讨论的整数;n是相关位的编号(即:第n- 位)并且;1第 位设置第n位:N |= 2^(n-1)
清除第n位:N &= ~(2^(n-1))
通过复制和移位检查位的状态:(N >> (n-1)) & 1 != 0
使用位掩码检查位的状态:mask = 2^(n-1); N & mask != mask
使用XOR反转/切换/反转第 n 位:。也可以使用该功能。N \xe2\x8a\xbb= 2^(n-1)xor
| 归档时间: |
|
| 查看次数: |
1531 次 |
| 最近记录: |