如何找到最高有效位位置?
How to Find Most Significant Bit Position?
我确实需要找到无符号 n 的最高有效位位置。它可以是任何输入。
我不想要位值,而是想要最高有效位的位置(顺便说一句,它必须是 1 而不是 0)。
例如,如果我的计算机读取 0011101110,则 msb 为 6。
编辑:我使用的是我老师给出的例子。她可能是错的。我认为那个例子中的 msb 是 7。
另外,我不想要为我编写的代码。只是解释我应该做什么。喜欢事物的概念。我不想欺骗或讨好任何人。
新编辑:IDK 这是怎么重复的,因为给我的是重复的,这与我的问题完全不同。它不会回答我在这里问的问题。
好的,你需要 4 样东西:
sizeof 运算符,它以 字节 为您提供变量大小。要获得 位数 ,您只需乘以常数 CHAR_BIT。您可以通过包含 'limits.h'.
来获得该常量
一个循环,其中您 运行 通过 所有 变量中的位,使用单独的计数器变量。在循环中,您使用
二进制 'and' & 来测试你的变量值 1,你在你的循环中使用 2 的幂不断增加
二进制左移运算符<<
在循环中检查二进制 'and' 是否为“1”;如果是,该位已设置,您可以 increment 将另一个变量设置为循环计数器,这将是您的 return 值。
我确实需要找到无符号 n 的最高有效位位置。它可以是任何输入。
我不想要位值,而是想要最高有效位的位置(顺便说一句,它必须是 1 而不是 0)。 例如,如果我的计算机读取 0011101110,则 msb 为 6。
编辑:我使用的是我老师给出的例子。她可能是错的。我认为那个例子中的 msb 是 7。 另外,我不想要为我编写的代码。只是解释我应该做什么。喜欢事物的概念。我不想欺骗或讨好任何人。
新编辑:IDK 这是怎么重复的,因为给我的是重复的,这与我的问题完全不同。它不会回答我在这里问的问题。
好的,你需要 4 样东西:
sizeof 运算符,它以 字节 为您提供变量大小。要获得 位数 ,您只需乘以常数 CHAR_BIT。您可以通过包含 'limits.h'.
来获得该常量一个循环,其中您 运行 通过 所有 变量中的位,使用单独的计数器变量。在循环中,您使用
二进制 'and' & 来测试你的变量值 1,你在你的循环中使用 2 的幂不断增加
二进制左移运算符<<
在循环中检查二进制 'and' 是否为“1”;如果是,该位已设置,您可以 increment 将另一个变量设置为循环计数器,这将是您的 return 值。