|
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
程序输出:
但是要小心,位域在不同平台上的实现可能不同,因此它可能不完全可移植。 |
|
no one special · 32位整数缩放,无溢出 8 年前 |
|
|
Benn Tan · 比特操作:更难翻动硬币 8 年前 |
|
|
Ganesh Thampi · 使用位运算符将十进制转换为二进制 8 年前 |
|
|
Ganesh Thampi · 使用位的奇偶程序 8 年前 |
|
|
datapanda · 三维网格的莫顿反向编码 8 年前 |
|
|
rubyquartz · 交换无符号短整数的字节 8 年前 |
|
|
John Proctor · C中位的掩蔽范围 8 年前 |
|
|
Areg Sarvazyan · 从无符号int中提取位的函数 8 年前 |
|
|
user9505617 · 按位异或0xFFFFFFFF? 8 年前 |