整数进制转换

整数进制转换#

整数进制转换和拆分整数的各位数是一回事.

我们通过 value % 10 能只获取十进制下的个位, 通过 value / 10 能去掉十进制下的个位, 这是因为十进制的表示方式就是 \(d_0 * 10^0 + d_1 * 10^1 + ... + d_n * 10^n\).

那如果是二进制呢? 它的表示方式是 \(d_0 * 2^0 + d_1 * 2^1 + ... + d_n * 2^n\), 我们可不可以用 value % 2value / 2 来得到二进制下的个位?

9 的二进制表示是 1001, 让我们来验证一下: [在线代码 73Tsqeffn]

 1#include <iostream>
 2using namespace std;
 3
 4int main() {
 5  int value = 9;
 6
 7  for (; value != 0; value /= 2) {
 8    int digit = value % 2;
 9    cout << digit << '\n';
10  }
11}