硬盘分区为整数

最精确硬盘分区的算法如下:

硬盘一般有255磁头,63扇区,故每柱面大小为:

1
512byte x 255 x 63=8225280bytes =7.84423828125 MB

如果要分40GB,那么要

1
40x1024MB=40960MB

需要柱面数为

1
40960÷7.84423828125=5221.66

取整数既为5222个柱面
应分M数为

1
5222x7.84423828125=40962.6123046875MB

不管小数点后面几位都进1,也就是40963MB,windows就认为是40GB了。
这个方法NTFS和FAT32通用。

下面附10GB到200GB整10GB递增的精确计算结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
10GB = 10245MB
20GB = 20482MB
30GB = 30726MB
40GB = 40963MB
50GB = 51208MB
60GB = 61444MB
70GB = 71681MB
80GB = 81926MB
90GB = 92162MB
100GB = 102407MB
110GB = 112644MB
120GB = 122888MB
130GB = 133125MB
140GB = 143362MB
150GB = 153606MB
160GB = 163843MB
170GB = 174088MB
180GB = 184324MB
190GB = 194561MB

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