每当我使用用户定义函数获取输入值,如 5,6 23,将此十进制数转换为二进制数时,我得到了错误的输出,但是当我在不使用用户定义函数的情况下运行代码时,我得到了正确的输出。我很困惑为什么这很开心帮助我
的输出原因是
printf
转换说明符读取的是字符,而不是数字('5'而不是5)。 '5'是字符字面量,整型,值为53。 53 是将存储在n
中的内容。 53 的二进制表示是 110101(你复制错误了吗?):32 + 16 + 4 + 1.
正如 Barmar 在评论中所说,如果你想读取一个数字,你应该使用像
%d
或 %u
这样的转换说明符。然后你也可以读取像 23 这样的输入,它由 two 字符 ;-).