【发布时间】:2014-03-06 10:22:21
【问题描述】:
假设 Z 是一个无符号整数。使用 ~、>、&、| 、+ 和 - 提供返回所需结果的语句。
如果需要,我可以引入新的二进制值。
我有这些问题:
1.从左边 Z中提取第5位。
为此,我正在考虑做类似的事情
x x x x x x x x
& 0 0 0 0 1 0 0 0
___________________
0 0 0 0 1 0 0 0
这对于提取第五位有意义吗?当我不知道 Z 的值时,我不完全确定如何仅使用 Z 来完成这项工作。 (我对这一切都比较陌生)。这种想法会奏效吗?
2.返回Z中1的位数
Here I kind of have no idea how to work this out. What I really need to know is how to work on just Z with the operators, but I m not sure exactly how to.
就像我说的那样,我对此并不陌生,因此感谢您提供任何帮助。
【问题讨论】:
-
第 5 位 - 最好从 MSBit 或 LSBit 开始 - 从 0 或 1 开始?
-
有充分的理由从右边开始计数:它也适用于恰好更大的位串。或无限。
标签: c bit-manipulation