热搜词
发表于 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两种格式:



硬盘整数分区计算器.rar (10.85 KB, 下载次数: 1017)

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

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

全部评论3
灰儿 发表于 2011-9-8 19:59:25 | 显示全部楼层
本帖最后由 灰儿 于 2011-9-8 20:58 编辑

分区大小(GB)
NTFS 格式设置大小(MB)
FAT32 格式设置大小(MB)
10 G
10245 MB
10276 MB
20 G
20482 MB
20556 MB
30 G
30726 MB
30836 MB
40 G
40963 MB
41116 MB
50 G
51208 MB
51396 MB
60 G
61444 MB
61676 MB
70 G
71681 MB
71956 MB
80 G
81926 MB
82236 MB
90 G
92162 MB
92516 MB
100 G
102407 MB
102796 MB
110 G
112644 MB
113076 MB
120 G
122888 MB
123356 MB
130 G
133125 MB
133636 MB
140 G
143362 MB
143916 MB
150 G
153606 MB
154196 MB
160 G
163843 MB
164476 MB
170 G
174088 MB
174756 MB
180 G
184324 MB
185036 MB
190 G
194561 MB
195316 MB
200 G
204806 MB
205596 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。


回复

使用道具 举报

回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2024-12-22 22:06 , Processed in 0.222072 second(s), 36 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2024 Discuz! Team