早教吧 育儿知识 作业答案 考试题库 百科 知识分享

关于x&(-x)求解释,x&(-x)是什么意思,有什么用啊?

题目详情
关于x&(-x)
求解释,x&(-x)是什么意思,有什么用啊?
▼优质解答
答案和解析
在C语言中
& 是 按位与运算符
-x 是x 的补码;补码为取反+1
x&(-x)返回x与2^64的最大公约数,即x最多能被n个2整除就返回2^n;如果x是奇数返回1
所以返回值为0,表示x=0
返回值为1,表示x为奇数
返回值为其他数,表示x为x与2^64的最大公约数
在条件语句中可以判断 该数是否为0,为1,能倍2整除?
利用状态位也可以 判断x是否为0
或者直接返回x与2^64的最大公约数