首页 > 解决方案 > 找到一个数字的 2s 补码的最快方法是获取最右边的设置位并将所有内容翻转到它的左侧

问题描述

我需要使用位掩码在 C 语言中实现这一点。我是位掩码概念的新手。

任何人都可以帮我使用位掩码来实现这个吗?

代码:

int a = 0b00001010;
int mask = 0b00000001; 
int i, cnt;
char a[8]; 

for(cnt=0; cnt<16; cnt++) { 
    i = a & mask; 
    mask = mask<<1; 
    if (i==0) { 
        a[cnt] = 0;
    } else { 
        a[cnt] = 1;
    }
}

标签: c

解决方案


推荐阅读