5月
6
2009

[转]windows下整数分区的计算逻辑

转自drag0n’s blog

硬盘整数分区计算方法我们一般是这样算的:分区大小=(分区大小-1)×4+1024×分区大小。
比如:

40GB=(40-1)×4+1024×40=41116MB

按照这样的计算方法:
5G=5136MB
10G=10276MB
15G=15416MB
20G=20556MB
30G=30836MB
40G=41116MB

30G以内,输入上面的数据,如10G你输入10276,在Windows资源管理器里面显示的刚好10.00GB,而在管理工具-磁盘管理界面显示就是10.04GB,如果是40G你输入41116,那么在Windows资源管理器里面显示的刚好40.01GB。

因此上面的计算公式还不是很准确。

最精确硬盘分区的算法我认为应该是这样的:

硬盘一般有255磁头,63扇区,故每柱面大小为:
512byte x 255 x 63=8225280bytes =7.84423828125 MB
如果要分40GB,那么要40×1024MB=40960MB
需要柱面数为40960÷7.84423828125=5221.66
取整数既为5222个柱面
应分M数为5222×7.84423828125=40962.6123046875MB
不管小数点后面几位都进1,也就是40963MB,windows就认为是40GB了。
这个方法NTFS和FAT32通用。

下面附1GB到200GB精确计算结果:
1G : 1028M
2G : 2056M
3G : 3075M
4G : 4103M
5G : 5123M
6G : 6150M
7G : 7170M
8G : 8198M
9G : 9217M
10G : 10245M
15G : 15367M
20G : 20482M
25G : 25604M
30G : 30726M
35G : 35841M
40G : 40963M
45G : 46085M
50G : 51208M
55G : 56322M
60G : 61444M
65G : 66567M
70G : 71681M
75G : 76803M
80G : 81926M
85G : 87048M
90G : 92162M
95G : 97285M
100G : 102407M
110G : 112644M
120G : 122888M
130G : 133125M
140G : 143362M
150G : 153606M
160G : 163843M
170G : 174088M
180G : 184324M
190G : 194561M
200G : 204806M

此精确分区结果,在管理工具-磁盘管理界面,和Windows资源管理器里面显示的是整数,10G就是10.00GB,20G就是20.00GB,40G就是40.00GB。

(FAT32支持最大的逻辑分区为32GB)

相关文章

关于作者:moface

博主

留下评论

博客剩余工作

6,优化前台(YSlow) 2,404页面 3,IE6下兼容性问题很大 1,标签小工具行高有点儿问题 4,微博聚合 5,推广工作 7,CDN(cloudflare

分类

访问统计