|
1
2
您将(1)首先必须清除位11。。15和(2)然后根据要设置的值设置位。为了实现(1),创建一个“掩码”,将所有位设置为
这是一个很长的版本来解释发生了什么。简而言之,你也可以写:
|
|
2
2
然后将这5位11的位置向左移动:
现在,我们有一个掩码,用于我们想在原始变量中清除的位11到15,我们通过反转掩码,逐位和带有反转掩码的变量来实现这一点:
然后我们按位或将其转换为已清除的5位:
|
|
|
3
0
考虑使用位字段。这允许您命名和访问整数的子部分,就像它们是结构的整数成员一样。 有关C位字段的信息,请参阅: https://www.tutorialspoint.com/cprogramming/c_bit_fields.htm
程序输出:
但是要小心,位域在不同平台上的实现可能不同,因此它可能不完全可移植。 |
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 1 年前 |
|
|
Bobby · 复合字面值总是左值吗? 1 年前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 1 年前 |