我将int传递给我的跛脚程序中的函数。它传入一个数字,将其转换为二进制表示形式为int数组。
typedef int bool;
bool* conv2bin(int num)
{
blah blah blah return binary as bool array
}
我传入78并且如果我在传入后立即打印(),我得到781237412753-124?
我是C的新手(来自C ++)所以请告诉我,我是否做了一些非常愚蠢的事情?
这看起来应该很容易,但它不是......?
编辑:
我做过傻瓜:
printf("%d", num);
编辑2: 它必须与int有关,因为在函数结束时,它会检查我们是否足够减去数字以达到num == 0,但它表示我们不是0。它正在做非常奇怪的事情。它还说二进制文件是0000000001001111,它应该是0000000001001110。
编辑3:
哇,我很糟糕。谢谢Floris!这是漫长的一天。答案 0 :(得分:2)
在这里猜猜......
您的打印输出以正确的两位数字开头:78
。
但是如果你没有在格式化字符串的末尾包含\n
,那么你打印的下一个内容将被连接起来。接下来就是下一件事。
我怀疑当您将print语句更改为
时,您的问题将会消失printf("%d\n", num);