存储单位换算

对给出存储容量数值进行单位换算

<?php
/*容量单位转换计算*/
$size=12345;
echo transByte($size);
function transByte($size){
    $arr=array("Bytes","KB","MB","GB","TB");
    $i=0;
    while($size>=1024){
        $size/=1024;
        $i++;
    }
    return round($size,2).$arr[$i];//保留两位小数
}
?>


在计算机中,字节(Byte)是存储容量的基本单位,不同存储单位之间的换算基于 **2 的幂次**(二进制)。以下是常见的字节存储单位及其换算关系: --- ### **核心单位换算** | 单位 | 符号 | 大小(Byte) | 等价关系 | |------------|--------|--------------------|------------------------------| | 位(Bit) | b | 1/8 Byte | 1 Byte = 8 Bit | | 字节(Byte)| B | 1 Byte | 基础单位 | | 千字节 | KB | 1,024 Bytes | 1 KB = 2¹⁰ Bytes | | 兆字节 | MB | 1,024 KB | 1 MB = 2²⁰ Bytes = 1,048,576 B | | 吉字节 | GB | 1,024 MB | 1 GB = 2³⁰ Bytes = 1,073,741,824 B | | 太字节 | TB | 1,024 GB | 1 TB = 2⁴⁰ Bytes | | 拍字节 | PB | 1,024 TB | 1 PB = 2⁵⁰ Bytes | --- ### **关键说明** 1. **二进制 vs 十进制** - **二进制换算**(计算机常用): 1 KB = 1,024 Bytes(2¹⁰),1 MB = 1,024 KB,依此类推。 - **十进制换算**(硬盘厂商常用): 1 KB = 1,000 Bytes,1 MB = 1,000 KB(导致实际容量“缩水”)。 *示例*:标称 1TB 的硬盘实际容量约为 931 GiB(二进制)。 2. **单位缩写** - 区分大小写:`KB`(千字节)≠ `kb`(千比特),`MB` ≠ `Mb`。 - 现代标准中,二进制单位建议用 `KiB`(Kibibyte)、`MiB`(Mebibyte)等,但实际仍广泛使用 `KB`、`MB`。 3. **常见场景** - **内存(RAM)**:通常以二进制单位标注(如 16GB = 16 × 2³⁰ Bytes)。 - **硬盘/网络**:厂商可能用十进制(如 1TB = 10¹² Bytes),操作系统显示二进制。 --- ### **换算示例** 1. **1 GB = ? MB** ``` 1 GB = 1,024 MB ``` 2. **500 MB = ? Bytes** ``` 500 MB = 500 × 1,024 × 1,024 = 524,288,000 Bytes ``` 3. **实际硬盘容量计算** 标称 2TB 的硬盘(十进制): ``` 2 TB = 2 × 10¹² Bytes = 2,000,000,000,000 Bytes 转换为二进制:2,000,000,000,000 ÷ (1,024⁴) ≈ 1.82 TiB ``` --- ### **Python 代码实现换算** ```python def bytes_to_unit(bytes_size, unit='GB'): """将字节数转换为指定单位(二进制换算)""" units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB'] if unit not in units: raise ValueError("单位必须是 B/KB/MB/GB/TB/PB") power = units.index(unit) converted = bytes_size / (1024 ** power) return f"{converted:.2f} {unit}" # 示例:将 1,073,741,824 Bytes 转换为 GB print(bytes_to_unit(1_073_741_824)) # 输出: 1.00 GB ``` --- ### **总结** - **二进制换算**是计算机领域的标准(1 KB = 1,024 Bytes)。 - 注意厂商可能使用十进制(1 KB = 1,000 Bytes),导致实际容量差异。 - 单位缩写需严格区分大小写(如 `MB` ≠ `Mb`)。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值