灰儿 发表于 2011-9-8 19:27:13

怎样让硬盘分区显示整数大小

本帖最后由 灰儿 于 2011-9-9 11:08 编辑

要想吧分区显示为整数,可没有那么简单,下面我就为大家详细分析硬盘分区容量显示之谜:

1. 硬盘厂商为了换算方便,是按照千进制来计算硬盘容量的,一块1TB的硬盘实际容量是1,000,000,000,000Bit=976,562,500KB=953,674MB=931GB左右,分区后实际可用容量会更小;

2. 操作系统实际计算硬盘容量是按照1024进制,由此导致实际可用容量小于标称容量,硬盘容量越大,“损失”的容量也越大;

3. 电脑当中实际显示的分区大小,既不是按照硬盘厂商的设计也不是操作系统的设计,而是另有误差。原因就是硬盘在分区和格式化之后还会在硬盘上占用一定的空间用来存储磁盘结构和数据位置等信息;

4. 对于FAT32分区,每1024字节可用容量会使用4字节用于存储磁盘结构和数据存储位置等信息,但分区中第一GB可用容量却不占用额外的存储容量,因此FAT32整数分区公式为:

应分配MB数=(分区GB数-1)×4+1024×分区GB数

例:
(5-1)×4+1024×5=5136 —— 5G
(10-1)×4+1024×10=10276 —— 10G
(15-1)×4+1024×15=15416 —— 15G
(20-1)×4+1024×20=20556 —— 20G
(30-1)×4+1024×30=30836 —— 30G
(40-1)×4+1024×40=41116 —— 40G
(50-1)×4+1024×50=51396 —— 50G
(60-1)×4+1024×60=61676 —— 60G
(80-1)×4+1024×80=82236 —— 80G

5. 对于NTFS分区,原理更加复杂。NTFS分区的最小容量单位不可能精确到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了

下面附10GB到200GB整10GB递增的精确计算结果:
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;

    上面的计算方法太过复杂,原理大家了解一些就行了,真正操作时如果还用公式+计算器慢慢换算,那就效率太低了。现在已经有人为我们设计了简单方便的硬盘整数分区计算器,支持FAT32和NTFS两种格式:

http://img5.pcpop.com/ArticleImages/0x0/1/1160/001160301.jpg



如果是给WIn7分系统盘的话,它会自动预留100MB的隐藏分区,因此在输入分区容量的时候,必须把计算器的数值+100,非系统分区则不需要

另有一个简单的方法,就是选用DiskGenius分区软件,在分区时选择显示单位为G,分区格式为ntfs就可以了。

灰儿 发表于 2011-9-8 19:59:25

本帖最后由 灰儿 于 2011-9-8 20:58 编辑


分区大小(GB)NTFS 格式设置大小(MB)FAT32 格式设置大小(MB)
10 G10245 MB10276 MB
20 G20482 MB20556 MB
30 G30726 MB30836 MB
40 G40963 MB41116 MB
50 G51208 MB51396 MB
60 G61444 MB61676 MB
70 G71681 MB71956 MB
80 G81926 MB82236 MB
90 G92162 MB92516 MB
100 G102407 MB102796 MB
110 G112644 MB113076 MB
120 G122888 MB123356 MB
130 G133125 MB133636 MB
140 G143362 MB143916 MB
150 G153606 MB154196 MB
160 G163843 MB164476 MB
170 G174088 MB174756 MB
180 G184324 MB185036 MB
190 G194561 MB195316 MB
200 G204806 MB205596 MB

灰儿 发表于 2011-9-8 20:02:35

本帖最后由 灰儿 于 2011-9-8 20:08 编辑

硬盘整数分区计算方法一般算法:分区大小=(分区大小-1)×4+1024×分区大小。
如果按照硬盘分区整数G计算公式:(X-1)*4 + 1024*X = Y,其中X就是你想要得到的整数分区的数值,单位是G;那么就Y是你分区时应该输入的数字,单位是M,比如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,那么要40x1024MB=40960MB
需要柱面数为40960÷7.84423828125=5221.66
取整数既为5222个柱面
应分M数为5222x7.84423828125=40962.6123046875MB
不管小数点后面几位都进1,也就是40963MB,windows就认为是40GB了。
这个方法NTFS和FAT32通用。
下面附10GB到200GB整10GB递增的精确计算结果:
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。


页: [1]
查看完整版本: 怎样让硬盘分区显示整数大小