求助,这个lowbit函数是什么意思


求助,这个lowbit函数是什么意思

文章插图
lowbit(i)的意思是将i转化成二进制数之后,只保留最低位的1及其后面的0,截断前面的内容,然后再转成10进制数 。即lowbit(i) = i&(-i) 。参数x为有符号整型数,-x通过求补码获得比如,x=6,及二进制数0110,那么按照补码求法,-x的值为1001+1=1010接着,x&-x,结果等于0010,作为函数的返回值可见该函数的作用是:返回x的最后一个为“1”的bit位的位置 。将 x和-x 按位相与 后的返回结果,比如x=5 (二进制是00000101 -5就是11111011 按位相与后就是00000001,所以返回1如果x=4 (00000100,-4 就是11111100,结果就是00000100,返回4总的来说就是返回最低位的1的位置,所以函数名叫lowbit 。
【求助,这个lowbit函数是什么意思】

    推荐阅读