网上盛传的整数分区方法:
(X-1)x4+1024xX=Y
X是你要得到的整数分区的数值,单位是GB,Y是你分区时应该输入的数字,单位是MB
按照网上流传的算法,300G FAT32分区的话会如下所示:
(300-1)*4+ 1024*300=Y
299*4 + 1024*300=Y
1196+307200=308396
下面看流传广泛的一个软件如何计算的:
两者相同,因为采用的是相同算法,开始试验!
输入308396
格式化
301G
是301G
再次确认301G,事实证明这个算法是错误的,软件也是错误的,因为那软件是根据算法原理编写出来的一个工具
装空调那几天罗列的算法,走路坐车一直划来划去,别人以为我有病~
……………………………………………………………………………………………………………………………………
猫头兄提供的资料对我的启发很大,非常感谢!
资料如下:
1. 硬盘厂商为了换算方便,是按照千进制来计算硬盘容量的,一块1TB的硬盘实际容量是
1,000,000,000,000Bit=976,562,500KB=953,674MB=931GB左右,分区后实际可用容量会更小;
2. 操作系统实际计算硬盘容量是按照1024进制,由此导致实际可用容量小于标称容量,硬盘容量越大,“损失”的
容量也越大;
3. 电脑当中实际显示的分区大小,既不是按照硬盘厂商的设计也不是操作系统的设计,而是另有误差。原因就是硬
盘在分区和格式化之后还会在硬盘上占用一定的空间用来存储磁盘结构和数据位置等信息;
4. 对于FAT32分区,每1024字节可用容量会使用4字节用于存储磁盘结构和数据存储位置等信息,但分区中{dy}GB可
用容量却不占用额外的存储容量,因此FAT32整数分区公式为:
应分配MB数=(分区GB数-1)×4+1024×分区GB数
5. 对于NTFS分区,原理更加复杂。NTFS分区的最小容量单位不可能xx到1MB,而是柱面大小。硬盘一般有255磁头
,63扇区,故每柱面大小为:512bitx255x63=8225280bit=7.84423828125MB
如果要分10GB,那么应当是10x1024MB=10240MB
实际需要柱面数为10240÷7.84423828125=1305.4
柱面只可能算整数,即1306个柱面
这样实际应分MB数为1306x7.84423828125=10244.575MB
不管小数点后面几位都进1,也就是10245MB,这样系统才能认成是10.0GB了
如果是给WIn7分系统盘的话,它会自动预留100MB的隐藏分区,因此在输入分区容量的时候,必须把计算器的数值
+100,非系统分区则不需要
………………………………………………………………………………………………………………
但我依旧觉得X-1那个算法不正确,在小容量可以容差,大容量就不行了;资料中提到的 对于FAT32分区,每1024字节可用容量会使用4字节用于存储磁盘结构和数据存储位置等信息 启发了偶
不同容量反复测试多次
我研究的FAT32分区算法如下:
X=整数分区设定值
Y=柱面数量
(X*1024) + (Y*4/1024)=FAT32整数分区需要的容量
(307200*1024) + (39162.5*4/1024)=307353 =300G FAT32整数分区容量
输入307353
格式化
分区信息
300G
付出的代价如下
结语:让我们互相学习进步!我觉得这个还有待继续研究!
硬件玩家、贵在真实 →→→