最近,我研究了一般用于数字存储/计算的 SI 和二进制前缀,但我仍然不确定我是否理解二进制前缀背后的逻辑(实际问题在底部)。
目前的理解(总结):
单位:
看起来很简单,每次你最终得到 'total # of bytes == current prefix value * 1,000' :使用下一个最大的前缀,它可以表示为 '1000 ^ 1 + 你已经使用的 SI 前缀的数量公斤。够简单的。
二进制:
因此,显然,当使用 2 的幂的数据单元时,内存会工作得更好/更容易(老实说,“系统架构”对此的解释超出了我的理解范围,所以我只相信他们的话)。此外,在二进制前缀正式建立之前的计算机早期,具有 1024 字节内存的机器(这将是使用 2 的幂突破 1000 字节的最小内存量),设计者决定使用已经建立的 SI标准并将此内存量描述为 kB,即使它们实际上并不相等(或多或少“足够接近”)。
这就是我的理解开始崩溃的地方,我猜由于 SI 标准通过使用公式(基数 1000 ^ 1 + 使用的前缀 #)“上升”到下一个前缀,那么二进制中的等价物是(基数 1024 ^ 1 + 使用前缀 #),因为 1024 比 512 或 2048(使用 2 的幂)更接近 1000,因此与 SI 公式更密切相关。
实际问题:
那么,如果这是正确的,那么此时为什么要使用二进制前缀呢?只说“1.024 kB”而不是 1 KiB(或您正在测量的任何单位)真的那么“糟糕”吗?我认为将 4 GiB 的 ram 列为 4.29497 GB 有点愚蠢(这是原因吗?使用四舍五入的数字更容易?)。那我对这些前缀标准的一般理解是否正确?
任何澄清表示赞赏,感谢您的阅读。
我通过 vSphere 5.5 添加了一个 500MB 的新硬盘到虚拟机,服务器将其视为 524MB。
知道为什么吗?
fdisk -l
>Disk /dev/sdg: 524 MB, 524288000 bytes
>64 heads, 32 sectors/track, 500 cylinders
>Units = cylinders of 2048 * 512 = 1048576 bytes
>Sector size (logical/physical): 512 bytes / 512 bytes
>I/O size (minimum/optimal): 512 bytes / 512 bytes
>Disk identifier: 0x00000000
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用外部(火线连接)DVD 驱动器在 Mac 上刻录 DVD。我正在检查iso的大小:
DVD-4:dvd_files macbook$ ls -l /tmp/hybrid.iso
-rw-r--r-- 1 macbook wheel 8700884992 Aug 22 10:57 /tmp/hybrid.iso
DVD-4:dvd_files macbook$ ls -lh /tmp/hybrid.iso
-rw-r--r-- 1 macbook wheel 8.1G Aug 22 10:57 /tmp/hybrid.iso
Run Code Online (Sandbox Code Playgroud)
“人类可读”大小为 8.1 Gig,但当我尝试刻录到 8.4G 双层 DVD 时,它显示“媒体没有足够的可用空间”
根据维基百科,“千兆字节”的定义是 10 亿字节,所以根据这个定义,iso 大小实际上应该是 8.7 Gig,在这种情况下,磁盘肯定不够大,只是-h选项ls具有误导性.
差异是否仅仅是由于ls命令使用了不同的“G”定义(例如 1024 Meg aka 1.07 Gig?这是 8.103,适合 ls 显示的内容)
我买了一张新的 32GB microSD 卡。Windows 在“属性”中表示该驱动器的容量为 29.3GB(31,474,057,216)。为什么?
我预计 1024x1024x1024x32 = 34,359,738,368 字节。我可以接受 0.5GB 的文件系统,但不能接受 2.7GB。可寻址空间遵循基数 10 没有逻辑上的原因,因为地址是二进制的。(或者他们是?)
dvd-burning ×1
filesystems ×1
hard-drive ×1
iso-image ×1
linux ×1
memory ×1
prefix ×1
storage ×1
vsphere ×1