哈哈,挺有洁癖的,所以…
硬盘一般有255磁头,63扇区,故每柱面大小为:
512byte x 255 x 63=8225280bytes =7.84423828125 MB
如果要分40GB,那么要40x1024MB=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)
这个脚本可以计算任意大小的整数分区。
把下面代码保存为intPartition.vbs文件,双击即可。
Dim g, cylinderSize, cylinderNums g = InputBox("请输入分区大小,单位G", "整数分区", "40") cylinderSize = 512 * 255 * 63 / 1024 / 1024 cylinderNums = Fix(g * 1024 / cylinderSize) + 1 MsgBox Fix(cylinderNums * cylinderSize) + 1 |
受教了!呵呵!