1个数的二进制中1的最小位数的位置

来源:互联网 发布:网网络加速器 编辑:程序博客网 时间:2024/05/16 23:34

神奇的二进制运算

代码:

#include<iostream>#include<cmath>using namespace std;int main(){    int n;    cin>>n;    cout<<log2(n&(-n))+1<<endl;}

比如说要找8的二进制中1的最小位数的位置

首先,8的二进制表示为1000,很明显可以看出1在第四位,,不过,,,答案就是4.。鄙视

还有一个代码:

#include<stdio.h>int main(){    int n;    scanf("%d",&n);    printf("%d",n&(-n));}

这个的功能是:找到能整除n的最大的2的次方

比如说n=12,答案就是4,,n=16,答案就是16

今天忽然发现这个,,不过好像没什么用。。。先存着,没准会用到。睡觉


1 0
原创粉丝点击