我写了一个十进制到二进制的转换器函数来练习我对数字系统和数组的操作。我将 int a 转换为二进制并将每个字符存储在一个数组中,或者我相信,然后显示到屏幕上,但是它显示的字符我不知道我在 aski 表上查找它们并且不认识他们,所以我想寻求您的帮助,这是代码的图片和控制台应用程序。
提前致谢。
我写了一个十进制到二进制的转换器函数来练习我对数字系统和数组的操作。我将 int a 转换为二进制并将每个字符存储在一个数组中,或者我相信,然后显示到屏幕上,但是它显示的字符我不知道我在 aski 表上查找它们并且不认识他们,所以我想寻求您的帮助,这是代码的图片和控制台应用程序。
提前致谢。
您可能希望在结果中插入数字字符(例如'1'
),但您分配了 char 值。尝试添加 的值'0'
以获得可读的结果 ( remainder + '0'
)。
如果您将结果数组解释为字符串(这就是我的建议),您还应该将最后一个字符设置为值0
(不是'0'
!)以标记 c 字符串的结尾。
您的输出函数不正确输出您的二进制文本,因为:
1) cout 输出字符直到'\0',所以你的函数将纠正输出,直到在 int 的二进制表示中获得第一个 0(例如,对于 5 = 101,它只会输出一个带有代码 0x01 的微笑)。
2)数组中的最后一个字符不是'\0',所以cout会输出垃圾直到'\0'或内存访问异常。