打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
[原创]如何计算才能整数分区?(分享硬盘整数分区最精确的PECMD代码公式,ntfs和fat32通用)
userphoto

2023.07.05 广西

关注

网上搜到的最精确硬盘分区的算法如下:

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

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

如果要分40 GB,那么要40 x 1024 MB=40960 MB

需要柱面数为40960 x 7.84423828125=5221.66

取整数既为5222个柱面

应分M数为5222 x 7.84423828125=40962.6123046875 MB

不管小数点后面几位都进1,也就是40963 MB,windows就认为是40 GB了。

这个方法NTFS和FAT32通用。

转换成PECMD代码:

-------- 回复可见内容 --------

回复可见内容
#code=936T950
set^ EnviMode=1
set^ ForceLocal=1

call     IntCalc     ret     12G  //参数1为返回值(以M为单位)       参数2为待转换值(可带单位,如K、M、G、T)

mess. [%ret%M]

_sub IntCalc
	set p0=(255 * 63 * 512 / 1M)     //每柱面大小:255磁头 x 63扇区 x 512字节每扇区,以M为单位
	set p1=%~2 / 1M / %p0%           //柱面数:总大小 ÷ 每柱面大小
	calc #p2=%p1%                    //柱面数(整数部分),以M为单位
	calc p3=frac[%p1%]               //柱面数(小数部分),以M为单位
	ifex $%p3%>0, calc p2=%p2% + 1   //柱面数有小数则进1
	set p4=%p2% * %p0%               //实际大小:柱面数 x 每柱面大小
	calc #p5=%p4%                    //实际大小(整数部分),以M为单位
	calc p6=frac[%p4%]               //实际大小(小数部分),以M为单位
	ifex $%p6%>0, calc p5=%p5% + 1   //实际大小有小数则进1
	set-ret %1=%p5%
_end
C++
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
硬盘整数分区FAT32/NTFS正确方法 - Slyar Home
disk分区整数计算
everlc的主页1
硬盘整数分区计算器在线工具 (NTFS/FAT32) | 异次元软件世界
轻博客|电脑
硬盘整数分区最精确的方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服