硬盘整数分区FAT32/NTFS方法

标签: , , , ,

硬盘厂商设计的是1GB=1000Mb,而操作系统却认为1Gb=1024Mb,而这个整数分区的公式既不是按照硬盘厂商的设计也不是操作系统的设计,而是另有误差。原因就是硬盘在分区和格式化之后还会在硬盘上占用一定的空间用来存储磁盘结构和数据位置等信息。

对于FAT32格式:
应分配MB数=(分区GB数-1)×4+1024×分区GB数
也就是说,如果你要在FAT32格式的硬盘上分出一个10 GB的硬盘,那么:
你应该分配的MB数=(10-1)×4+1024×10=10276 MB
这样你就可以得到整数的10 GB分区了。

对于NTFS格式:
硬盘一般有255磁头,63扇区,故每柱面大小为:
512byte x 255 x 63=8225280bytes =7.84423828125 MB
如果要分10 GB,那么要10×1024 MB=10240 MB
需要柱面数为10240÷7.84423828125=1305.4167444755680049797
取整数既为1306个柱面
应分MB数为1306×7.84423828125=10244.5751953125 MB
不管小数点后面几位都进1,也就是10245 MB,系统也就认为是10.00 GB了。

总结:这么算实在是太麻烦了,要是每次这么算一下会崩溃的,用C语言写了个无聊的计算[download id=3]

随机文章:

  1. VC编写在Windows 7下需要管理员权限的程序
  2. 用VBS修改(设置)系统时间和日期
  3. 利用53端口的OpenVPN免费上网
  4. VBS中的GetUILanguage函数
  5. C语言中的右移位运算

4 条评论 发表在“硬盘整数分区FAT32/NTFS方法”上

  1. Mike说道:

    真好,我老是分不到整数!你写的软件真强大啊!

  2. 沙漠孤魂说道:

    好像不错哦~

  3. 萝卜说道:

    硬盘整数分区FAT32/NTFS方法 求源码

  4. 萝卜说道:

    硬盘整数分区FAT32/NTFS方法 求源码
    希望 开源下 学习下 呵呵

留下回复