【发布时间】:2017-04-06 19:59:22
【问题描述】:
我在 C++ 中创建了一个返回二进制数的函数时遇到了问题。
function(unsigned short int user_input, int tab[16]) {
for(ii = 0; ??; ii++)
tab[ii] = i % 2;
i = i / 2;
}
用户输入 DEC 号码并取回 BIN。
我应该只输入 ii
【问题讨论】:
-
可能希望通过将 user_input 设置为
uint16_t类型来保证只有 16 位值。这将更具可移植性,并避免编译器/架构将无符号 short 指定为不是 16 位的情况。见stackoverflow.com/questions/15505828/… -
它必须看起来像我写的那样。例如,如果我输入 5 我得到 00000000 00000101
-
是的,您的代码有效。我并不是说它没有。我建议为避免编译器实现差异,您可以将 user_input 指定为
uint16_t而不是假设unsigned short int始终为 16 位。 -
那么 'for(ii = 0; ii
-
这很好。我只是指出一个警告,您可能需要注意各种数据类型的大小,并且允许编译器创建大于 16 位的短裤。