gpt4 book ai didi

c - 用 C 语言构建二进制表示

转载 作者:行者123 更新时间:2023-11-30 15:38:36 24 4
gpt4 key购买 nike

正如标题所说。我已经查看了一些相关问题,但他们的做法与我不同。这是代码片段:

int convert(int in, unsigned int newBase, char result[]){
int i = 0;
for (i; i < 32; ++i){
if (in % newBase == 0)
result[i] = '0';
else
result[i] = '1';
in = in / newBase;
++i;
}
result[31] = "\0";
return 1;
}

result[] 驱动程序文件保证大小为 32。例如,如果我调用 convert(1275, 2, result[0]);,它应该建立二进制表示形式(向后,但现在这不是问题)11011111001。它这样做了,但散布在所有二进制数字中的是一个带有重音符号的大写字母 I。为什么会发生这种情况?

最佳答案

要将 32 个二进制数字作为字符串保存,result 需要为 33 个字节,并且 null 位于 result[32](第 33 个字符),而不是 结果[31]

此外,作为 char 常量的 null 应该使用单引号,而不是双引号...所以更改:

result[31] = "\0";

至:

result[32] = '\0';

...并确保 result 有至少 33 个字符的空间。您看到的奇怪字符可能是尝试写入字符串文字的地址的结果“\0”进入结果

关于c - 用 C 语言构建二进制表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21686795/

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