我正在尝试使用余数运算符%创建一个将在一个实例中找到8位数字的前半部分的函数,如果将0更改为1,它将仅找到后半部分。但是,带有%的方程始终会返回错误的答案。
我已经发现,当该8位数字的开头为0时会发生此错误,但我不明白为什么。
这就是我所拥有的
int nibble(int byte, int whichNibble){
int nibble;
if (whichNibble == 0){
nibble = (byte - (byte % 10000))/10000;
return nibble;
}
else{
nibble = byte % 10000;
return nibble;
}
}
当我使用nibble(01010101, 1)
时,它将返回6305,而应返回0101。