![]() |
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
程序输出:
但是要小心,位域在不同平台上的实现可能不同,因此它可能不完全可移植。 |
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |