What is the fastest/most efficient way to find the highest set bit (msb) in an integer in C?

后端 未结 27 2774
终归单人心
终归单人心 2020-11-22 03:35

If I have some integer n, and I want to know the position of the most significant bit (that is, if the least significant bit is on the right, I want to know the position of

27条回答
  •  青春惊慌失措
    2020-11-22 04:05

    My humble method is very simple:

    MSB(x) = INT[Log(x) / Log(2)]

    Translation: The MSB of x is the integer value of (Log of Base x divided by the Log of Base 2).

    This can easily and quickly be adapted to any programming language. Try it on your calculator to see for yourself that it works.

提交回复
热议问题