- MysGln 的博客
数位分解|数学基础|代码模版
- @ 2026-4-4 11:48:43
一、 幂运算 (Exponentiation)
1. 基本定义
幂运算是一种关于幂的数学运算,表示为 ,其中 称为底数 (Base), 称为指数 (Exponent)。
- 当 为正整数时, 表示 个 相乘:$$a^n = \underbrace{a \times a \times \dots \times a}_{n \text{ 个}}$$
- 特殊规定:
- 任何非零数的 0 次幂等于 1:
- 负指数表示倒数:
2. 核心性质
幂运算是进制转换的数学基础,其核心性质包括:
- 同底数幂相乘:
- 幂的乘方:
二、 进制展开原理 (Positional Notation Expansion)
1. 基本概念
进制(进位制)是一种记数方式。在 进制系统中,每一位数字所代表的实际数值,不仅取决于该数字本身,还取决于它所处的位置。这个位置对应的价值被称为权重 (Weight)。
2. 展开公式
对于一个任意 进制数,其数值可以通过“按权展开”的方式表示为底数 的幂的线性组合。
假设一个数 在 进制下的表示为:$(d_n d_{n-1} \dots d_1 d_0 . d_{-1} d_{-2} \dots)_r$ 其十进制数值的计算公式为:
展开式:
$$N = d_n \cdot r^n + d_{n-1} \cdot r^{n-1} + \dots + d_0 \cdot r^0 + d_{-1} \cdot r^{-1} + \dots$$- :基数 (Radix/Base),如二进制 ,十进制 。
- :第 位上的数码。
- :第 位的权重(位权)。
三、 实例演示
1. 十进制 (Base-10) 展开
数字 1234.5 的构成:
- 合计:
2. 二进制 (Base-2) 转换为十进制
将二进制数 1101.1 展开:
代码模版
使用场景:
- 需要求每一个数位上的数字
- 需要求数字的长度(例如123是3位数字)
#include <iostream>
using namespace std;
int main() {
long long n;
cin >> n;
if (n == 0) cout << 0;
// 逆序输出 (个位 -> 高位)
while (n > 0) {
cout << n % 10 << " ";
n /= 10;
}
return 0;
}