SD卡大小计算

SD Card Size Calculation

我只是想提取 16GB SD 卡的大小,但似乎不太准确。

根据 SD 规范,我提取变量 C_SIZE 如下...

uint32_t c_size = (((uint32_t)csd[7] & 0x3F) << 16) | ((uint16_t)csd[8] << 8) | csd[9];

我得到 30386。然后我通过执行规范中也概述的操作来计算多少 kb...

memory capacity = (C_SIZE+1) * 512KByte

然后我乘以 1024 将其转换为字节数。

问题是,对于我的 16GB 卡,根据上面的计算,我得到 15,931,539,456 字节,当我转到 Windows 中的 SD 卡属性时,我得到的容量为 15,923,150,848 字节(已使用 98,304,15,923,052,544免费)。

我错过了什么?

没有。你的计算是正确的。

您计算出的卡的大小是设备上可用的原始存储总量。 Windows报告的大小是格式化后可用于文件的存储量。