<分区>
Possible Duplicate:
Finding consecutive bit string of 1 or 0
是否可以从左开始计算整数中连续的 1? So:从最高位开始连续设置位的总数。
仅使用:
! ~ & ^ | + << >>
-1
= 0xFFFFFFFF
将返回 32
0xFFF0F0F0
将返回 12 (FFF = 111111111111)
不幸的是,没有循环。
可以承担的机器:
使用 2s 补码,整数的 32 位表示。
执行算术右移。
将整数移动更多时具有不可预测的行为 比字长。
我被禁止:
使用任何控制结构,如 if、do、while、for、switch 等。
定义或使用任何宏。
在此文件中定义任何附加函数。
调用任何函数。
使用任何其他操作,例如 &&、||、- 或 ?:
使用任何形式的转换。
使用 int 以外的任何数据类型。这意味着你 不能使用数组、结构或 union 。
我看过 Finding consecutive bit string of 1 or 0 它使用循环,我不能使用。我什至不知道从哪里开始。
(是的,这是一项任务,但我只是想请那些足够熟练的人帮忙。我已经完成了几乎所有我需要做的事情,但这个不行。)
(对于那些仅仅因为它是为了学校而投反对票的人: 常问问题: 1 一个具体的编程问题,检查 2 但是,如果您的动机是“我希望其他人向我解释 ______”,那么您可能没问题。)