整数进制转换#
前置内容
整数进制转换和拆分整数的各位数是一回事.
我们通过 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 % 2
和 value / 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}