有二进制方式将整数百位转换为零吗?

时间:2017-11-07 07:58:16

标签: c#

我试图让函数HundredPosToZero将百位置转换为零,例如:

HundredPosToZero(4239) // 4039

这是我的工具:

public HundredPosToZero(int num){
  return num / 1000 * 1000 + num % 100;
}

但是,我想到为什么不使用像bitwise operator这样的4239 & 1011做同样的事情?但我无法弄清楚如何实现它,因为4239不是二进制,有这种方法的任何建议吗?

2 个答案:

答案 0 :(得分:2)

不是真的。二进制中的十进制数没有什么特别之处。例如,有可能一个十六进制数字,但十进制数字不能与二进制数字很好地搭配:)

答案 1 :(得分:1)

如果你希望这个操作对于所有数字都是相同的,那就完全不可能了。"数百"在整数的常规表示中,不要占用相同的位。

如果您使用其他数字的二进制表示(如BCD)将位组分配给唯一的十进制数字,那么您可以轻松地执行此操作。