gpt4 book ai didi

c++ - c、使用 dec2bin 转换器填充数组

转载 作者:太空宇宙 更新时间:2023-11-04 07:36:16 25 4
gpt4 key购买 nike

我正在尝试将十进制转换为二进制,但我得到了意想不到的结果。

以下代码返回 0000000000000000000000000000010ÔýDv

代替 00000000000000000000000000000010

#include <stdio.h>
#include <string.h>

char *bin(long dec, long len);

main(){
bin(2,32);
return 0;
}

char *bin(long dec, long len){
int c=0;
char tmp[len],b[len];
memset(tmp, '0', len);
memset(b, '0', len);
if(dec==0){c++;}
while(dec>0){
tmp[c++]=0x30+(dec%2);
dec/=2;
}
while(c>0){b[len-c]=tmp[--c];}
puts(b);
return b;
}

请帮帮我

最佳答案

您的 b 数组不是以 0 结尾的。您很幸运,您的程序没有崩溃!

b 的长度应该是 len+1,当你写完之后,执行 b[len] = 0;在归还之前。

关于c++ - c、使用 dec2bin 转换器填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8630138/

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