gpt4 book ai didi

在c中将整数转换为二进制字符串

转载 作者:行者123 更新时间:2023-11-30 14:55:01 31 4
gpt4 key购买 nike

这是我尝试过的,我的逻辑是我的 tmp 左移 31 次将与用户输入整数 I 和值 1 或0 将被插入到索引 str[0] -> str[31] 中,并且 I null 以 终止 str[32] >\0

但是,我遇到了段错误。

附注我不允许更改此函数的参数,并且我的教授在 main 中将 str 的大小设置为 33,我也不允许更改。

void int2bitstr(int I, char *str) {
int tmp = 1 << 31;
do{
*str++ = !!(tmp & I) + '0';
} while(tmp >>= 1);
*str = '\0';
}

最佳答案

尝试将tmp设置为unsigned int。右移负(有符号)整数的行为是实现定义的,在您的情况下可能会移动 1 秒(原始 MSB),从而导致循环超过 str 的长度。

关于在c中将整数转换为二进制字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46326771/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com