c - 找到一个数字的 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;
}
}
解决方案
推荐阅读
- angular - Angular FormGroup 不包含模型属性
- android - Android MVVM:当相同数据是来自不同服务器端点的响应的一部分时,如何从另一个存储库更新存储库中的数据?
- angular - 如何在Angular 8中使用条件templateUrl动态创建组件?
- excel - 对象“_Worksheet”的错误 1004 方法“保护”失败
- botframework - 在 LUIS 和 QnA Maker 中直接支持俄语和阿拉伯语
- reactjs - 如何使用 getfiledecoder 在 ant design 中验证 url
- roku - 使用 Brightscript 为 ROKU 应用程序解析 JSON
- python - 在非常大的数据帧上提高迭代的性能
- android - Android 离线地图 - OSMDroid
- php - PHP不断将数据多次添加到csv文件