作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 char[16] 数组,我正在从用户那里获取输入:输入例如 - 15, 21 ,23, -1
我需要将位置 15,21 和 23 的位值设置为“1”。-1将完成程序。
每个 char[16] 数组代表 0-127 之间的值,代表位。我在 15,21 和 23 单元格中输入“1”时遇到问题。
这是我的程序
int temp;
char A[16];
/*Sets all the cells values to o*/
memset(A, 0, 16*sizeof(char));
While (int != -1)
{
scanf("Enter values from the user:%d", val");
div = (temp/8);
mod = (temp%8);
A[div] |= (mod<<=1);
}
问题在于它没有将单元格 15,21 和 23 的值设置为“1”。
最佳答案
用它来设置正确的位:
A[div] |= (1<<mod);
相关问题:How do you set, clear, and toggle a single bit?
完整代码示例:
#include <iostream>
int main() {
unsigned char A[16];
memset(A, 0, sizeof(A));
int t;
std::cin >> t;
while (t != -1)
{
int div = (t/8);
int mod = (t%8);
A[div] |= (1<<mod);
std::cin >> t;
}
for(int i = 0; i < 16; ++i) {
std::cout << (int)A[i] << " ";
}
std::cout << std::endl;
return 0;
}
关于C 如何将位掩码到字符数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10971388/
我是一名优秀的程序员,十分优秀!