我需要真正找到一个无符号n的最高有效位。它可以是任何输入。
我不需要位值,而是想要最高有效位的位置(必须为1而不是0 btw)。 例如,如果我的计算机读取0011101110,则msb为6。
编辑:我使用的是我老师给的例子。她可能是错的。我认为该示例中的MSB为7。 另外,我也不想为我编写代码。请解释一下我应该怎么做。喜欢事物的概念。我不想欺骗或嘲笑任何人。
新编辑:IDK这是如何重复的,就像我告诉我的那样,这是重复的,完全不像我的问题。不会回答我在这里问的一个问题。
答案 0 :(得分:0)
好,您需要做四件事:
1)sizeof运算符,可为您提供变量大小,以 bytes 为单位。要获得位数,只需将其与常数CHAR_BIT相乘即可。您可以通过包含“ limits.h”来获得该常数。
2)一个循环,在循环中您使用单独的计数器变量遍历变量的所有所有位。在循环内部,您使用
3)二进制'and'&,以针对变量1的值进行测试,您可以使用
在循环中以2的幂继续增加4)二进制左移运算符 <<< / strong>
在循环中,您检查该二进制“和”是否为“ 1”;如果是,则设置该位,然后您可以 increment 将另一个变量设置为循环计数器,这将是您的返回值。