如何实现翻转一串二进制代码:
方法一; 指数法
for(i=0;i<32;i++)
{
ret=value & 1; //value为需要翻转的二进制序列
sum=sum+(ret*pow(2,(31-i))); //每次&1取最低位然后乘以起翻转后的权的二次幂;
value=value >> 1 ; //每次取完一个最低为后二进制序列右移1;取下一位
}
方法二: 逻辑运算
for( i=0; i < 32; i++)
{
ret = ret << 1; // ret储存value的最低位,每次取到最低位后向左移动一位;
bit = value & 1; // 取value的最低位 存储到bit
value = value >> 1; // 向右移动一位
ret = bit | ret; //将所取到的最低位传给ret
}
方法一; 指数法
for(i=0;i<32;i++)
{
ret=value & 1; //value为需要翻转的二进制序列
sum=sum+(ret*pow(2,(31-i))); //每次&1取最低位然后乘以起翻转后的权的二次幂;
value=value >> 1 ; //每次取完一个最低为后二进制序列右移1;取下一位
}
方法二: 逻辑运算
for( i=0; i < 32; i++)
{
ret = ret << 1; // ret储存value的最低位,每次取到最低位后向左移动一位;
bit = value & 1; // 取value的最低位 存储到bit
value = value >> 1; // 向右移动一位
ret = bit | ret; //将所取到的最低位传给ret
}