baiy / Ctool

程序开发常用工具 chrome / edge / firefox / utools / windows / linux / mac
https://ctool.dev
MIT License
1.47k stars 208 forks source link

关于 其他 单位换算 数据存储 逻辑bug #283

Open Alexios-cd opened 1 year ago

Alexios-cd commented 1 year ago

数据存储 转化中 使用的单位有问题

存储单位有两种计量模式

  1. 由 bytes IEC (International Electrotechnical Commission 国际电工委员会) 制定的以2为进制的,如 1 KB = 1024 bytes,1 MB = 1024 KB,1 GB = 1024 MB 等等。这种表示方式通常用于计算机和 IT 领域。
  2. 由 bytes SI (International System of Units 国际单位制) 制定的以10为进制的,如 1 KB = 1000 bytes,1 MB = 1000 KB,1 GB = 1000 MB 等等来表示。这种表示方式通常用于科学和工程领域。

两种表示方式的区别在于 IEC 使用的是更直观的单位,而 SI 则更符合国际标准。

数据单位 定义标准 用途 最小数据单位 换算关系
bytes(IEC) IEC(国际电工委员会) 计算机存储容量 1 byte
bytes(SI) SI(国际单位制) 计算机存储容量 1 byte
bit(IEC) IEC(国际电工委员会) 数据传输速度、网络带宽 1 bit 1 byte = 8 bit
bit(SI) SI(国际单位制) 数据传输速度、网络带宽 1 bit 1 byte = 8 bit

二进制(计算机使用较多)

名字 缩写 次方
kibibyte KiB 2^10
mebibyte MiB 2^20
gibibyte GiB 2^30
tebibyte TiB 2^40
pebibyte PiB 2^50
exbibyte EiB 2^60
zebibyte ZiB 2^70
yobibyte YiB 2^80

十进制(硬盘厂商使用较多)

名字 缩写 次方
千字节 KB 10^3
兆字节 MB 10^6
吉字节 GB 10^9
太字节 TB 10^12
拍字节 PB 10^15
艾字节 EB 10^18
泽字节 ZB 10^21
尧字节 YB 10^24
容字节 RB 10^27
昆字节 QB 10^30

详情可以参考:维基百科中关于 Mebibyte的定义 :https://zh.wikipedia.org/zh-hans/Mebibyte

目前存在问题:

在其他->单位换算->数据存储 页面

  1. 实际的计算是使用的以 2 为进制的 IEC 规范,但是页面上显示的单位 mb,tb等是 SI 的单位。应该使用IEC规范,如: kibibyte(KiB),mebibyte(MiB),gibibyte(GiB)等
  2. 页面中的千字节,兆字节等属于 SI 规范,实际确是 IEC 规范

    迭代建议

    • 方向一:直接将单位修改正确修改为IEC规范,如:kibibyte(KiB),mebibyte(MiB),gibibyte(GiB)等
    • 方向二(推荐):作为一个通用的单位转化工具,应该尽可能全面的进行功能迭代,建议如下:
    • 使用一个页面
    • 分别输出 IEC 单位转化结果和 Si单位转化结果
    • 分别在IEC 单位和Si单位标题上说明进制和区别
    • 方向三(推荐)
    • 使用两个数据存储页面,分别为 IEC 和 SI 数据存储转化
    • 提供转化功能的同时在页面上说面两者的区别和进制单位,建议附上wiki的说明,例如维基百科或者其他百科。

      问题进阶

      除了以上提到的单位 其实还有一些是我个人不太想搞清楚的内容 eg:

    • Gb(Gigabit)是指十进制的千兆位,即10^9位。
    • GB(Gigabyte)是指十进制的千兆字节,即10^9字节。
    • Gib(Gibibit)是指二进制的千兆位,即2^30位。
    • GiB(Gibibyte)是指二进制的千兆字节,即2^30字节。

建议:只实现 GiB 和 GB 这种,其他的可以暂时不考虑,个人感觉用的比较多的是 GiB 和 GB,如果开发者有兴趣,可以打开 windows 的计算器(win10及以上版本),切换到 数据 自己实验一下: image

baiy commented 1 year ago

非常感谢如此详尽的描述
后续我会根据你提供的资料来优化该功能 会将这两种计量模式均展示在页面(方向二)