我正在尝试弄清楚如何执行标题中描述的操作。然而,有一些规则。我只能使用位级运算来确定字符是0还是1。因此没有函数调用、宏调用、加法、减法、除法、取模或乘法。
我很可能最终会使用异或和/或位移位。我只是不确定到底该怎么做。我在这里发现了一个类似的问题,但它涉及从字符串转换为整数。如有任何帮助,我们将不胜感激。
最佳答案
char *uintToChar(uint32_t uint, char *buff)
{
char *wptr = buff;
for(uint32_t i = 1ul << 31; i ; i >>= 1)
{
*wptr++ = (uint & i) ? '1' : '0';
}
*wptr = 0;
return buff;
}
int main(void)
{
char d[33];
printf("%s\n", uintToChar(0xf0f0f0f0, d));
}
关于c - 如何在 C 中将 32 位整数的位模式存储在 32 长度的 0 和 1 字符串中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52562605/