我在c ++中创建了一个函数,它会给我一个二进制数。
function(unsigned short int user_input, int tab[16]) {
for(ii = 0; ??; ii++)
tab[ii] = i % 2;
i = i / 2;
}
用户插入DEC编号并返回BIN。
我应该输入ii< 16?它有效,但它是否正确?
答案 0 :(得分:1)
那会工作但有点浪费(如果输入1,则将0除以2 15次)。也可以加速2加速"加速转移。这是另一种选择:
function(unsigned short int user_input, int tab[16]) {
int idx = 0;
while(user_input > 0)
{
tab[idx] = user_input & 1;
user_input = user_input >> 1;
idx++;
}
for(; idx < 16; idx++)
{
tab[idx] = 0;
}
}
答案 1 :(得分:0)
更紧凑的版本:
$setning = "You should eat fruits, vegetables, and fiber every day.";
$gammeltord = array("fruits", "vegetables", "fiber");
$nyttord = array("pizza", "beer", "ice cream");
$nysetning = str_replace($gammeltord, $nyttord, $setning);
echo "$nysetning"
请注意,这会将最低有效位放在void function(uint16_t x, int b[16]) {
for (int i = 0; i != 16; ++i, x >>= 1)
b[i] = x & 1;
}
。
回答你的问题:是的,b[0]
是正确的。这导致循环迭代16次,每次执行循环体时ii < 16
从ii
变为0
,在此期间检查最后一位然后移位。