我正在尝试弄清楚如何执行我在标题中描述的操作。但是有一些规则。我只能使用位级操作来确定字符是 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("%sn", uintToChar(0xf0f0f0f0, d));
}