|
NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
进制安全的字节大小表示实现 更多...
类 | |
| class | byte_size |
| 字节大小类 更多... | |
进制安全的字节大小表示实现
支持不同单位之间的转换、字符串解析和格式化输出。支持二进制和十进制两种标准。
本实现严格遵循以下数据存储单位与度量衡相关标准规范:
二进制前缀标准(IEC 标准):
国际单位制(SI)十进制前缀标准:
网络协议与数据大小表示标准:
编程语言与系统标准:
根据 IEC 80000-13 和 IEEE 1541,字节单位存在两套并行的标准:
| 二进制前缀 | 符号 | 2的幂 | 字节数(近似) | 十进制前缀 | 符号 | 10的幂 | 字节数(精确) |
|---|---|---|---|---|---|---|---|
| kibibyte | KiB | 2^10 | 1,024 | kilobyte | kB | 10^3 | 1,000 |
| mebibyte | MiB | 2^20 | 1,048,576 | megabyte | MB | 10^6 | 1,000,000 |
| gibibyte | GiB | 2^30 | 1,073,741,824 | gigabyte | GB | 10^9 | 1,000,000,000 |
| tebibyte | TiB | 2^40 | ≈1.1×10^12 | terabyte | TB | 10^12 | 1,000,000,000,000 |
| pebibyte | PiB | 2^50 | ≈1.13×10^15 | petabyte | PB | 10^15 | 1,000,000,000,000,000 |
| exbibyte | EiB | 2^60 | ≈1.15×10^18 | exabyte | EB | 10^18 | 1,000,000,000,000,000,000 |
本实现支持的单位字符串(不区分大小写):
| 单位 | 全名(二进制) | 全名(十进制) | 支持的别名 | 进制 |
|---|---|---|---|---|
| B | byte | byte | - | 1 |
| KB/K | kibibyte | kilobyte | K | 二进制/十进制 |
| MB/M | mebibyte | megabyte | M | 二进制/十进制 |
| GB/G | gibibyte | gigabyte | G | 二进制/十进制 |
| TB/T | tebibyte | terabyte | T | 二进制/十进制 |
| PB/P | pebibyte | petabyte | P | 二进制/十进制 |
| EB/E | exbibyte | exabyte | E | 二进制/十进制 |
IEEE 1541 标准建议:
| 特性 | 规范参数 |
|---|---|
| 内部存储 | uint64_t(最大约 16 EiB) |
| 最大可表示值 | 2^64 - 1 字节 ≈ 18.4 EB |
| 二进制乘数表 | 1, 1024, 1024², ..., 1024⁶ |
| 十进制乘数表 | 1, 1000, 1000², ..., 1000⁶ |
| 自动单位选择 | 选择使数值 < 1024(二进制)或 < 1000(十进制)的最大单位 |
| 解析容错 | 忽略大小写,支持简写别名(K、M、G等) |
| 小数精度 | decimal_t(通常为 80 位扩展精度) |