今天在网上看到一个题目,输入一个十进制的正整数,从低位开始查找,找到第一个置位(1)比特的位置 按照如下规则对正整数进行置位比特的查找: 1. 当查找失败时,比如输入正整数0,返回-1 2. 当查找成功时,返回该比特的位置 例子: 比如 如入12,二进制表示是0000000000001100,则第一个置位比特为2
那我的思路是先使二进制1左移i位与原数的二进制相与,第一个为真的时候返回i值即可,代码如下:
#include <iostream>
using namespace std;
int decToBin(int val){
if ( 0 == val)
{
return -1;
}
for (int i = 0; i <