社区
C语言
帖子详情
这样的除法,如何实现
liulibo11119
2005-09-21 11:50:10
4字节无符号整数,表示,盘的存储容量,大于1MB,显示XXX.XXX MB,大于1KB乎 显示XXX.XXX KB
小于1K,显示 XXXX.XXX By
n/1024.0
是不是比 n/1024,
要耗时很多,
如果很多,则不用 n/1024.0 实现
另 用 sprintf(s, "%d.%d MB" n/(1024*1024), (n%(1024*1024))/1024);
求出的值与用 n/(1024*1024*0.1)
有很大出入,
...全文
153
9
打赏
收藏
这样的除法,如何实现
4字节无符号整数,表示,盘的存储容量,大于1MB,显示XXX.XXX MB,大于1KB乎 显示XXX.XXX KB 小于1K,显示 XXXX.XXX By n/1024.0 是不是比 n/1024, 要耗时很多, 如果很多,则不用 n/1024.0 实现 另 用 sprintf(s, "%d.%d MB" n/(1024*1024), (n%(1024*1024))/1024); 求出的值与用 n/(1024*1024*0.1) 有很大出入,
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
K
2005-09-22
打赏
举报
回复
判断一下N的大小。
if (n<1024)
bytes;
else
if (n<1024*1024)
KB;
else
MB;
sprintf(s, "%d.%d MB" n/(1024*1024), (n%(1024*1024))/1024);
n%(1024*1024)/1024这里会取整的,你直接除就可以了。
float ratio=n/1024.0/1024.0;
边城狂人
2005-09-22
打赏
举报
回复
另 用 sprintf(s, "%d.%d MB" n/(1024*1024), (n%(1024*1024))/1024);
求出的值与用 n/(1024*1024*0.1)
当然会有很大的出入了
n / (1024 * 1024) 与 n / (1024 * 1024 * 0.1) 就是十倍之差
n % (1024 * 1024) / 1024 是将余数除以 1024,不知道你是何用意。
deping_chen
2005-09-22
打赏
举报
回复
printf("%dM, %dK, %dB", n>>20, (n&0xFFFFF)>>10, (n&0x3FF));
fjm_520
2005-09-22
打赏
举报
回复
楼上说中要害
zhouhuahai
2005-09-22
打赏
举报
回复
4字节无符号整数,表示,盘的存储容量,大于1MB,显示XXX.XXX MB,大于1KB乎 显示XXX.XXX KB
小于1K,显示 XXXX.XXX By
用移位操作比除法快得多(虽然有很多除法在内部会转化成移位):
除以1024就是右移10位.......
linxyuan
2005-09-22
打赏
举报
回复
good!
zijida
2005-09-22
打赏
举报
回复
楼主小脑袋瓜儿挺灵的.
liulibo11119
2005-09-22
打赏
举报
回复
谢谢各位,已实现了
void mmi_mydata_utils_convertToStrSize(const U32 ulSize, char *spStr)
{
U32 n1 = 0;
U32 n2 = 0;
if(NULL == spStr)
{
return;
}
if(MMI_MYDATA_SIZE_M_BYTE <= ulSize)
{
n1 = ulSize>>20; /*The same as ulSize/MMI_MYDATA_SIZE_M_BYTE*/;
n2 = ulSize&0x000FFFFF; /*The same as ulSize%MMI_MYDATA_SIZE_M_BYTE;*/
n2 *= 100;
n2 >>= 20;
sprintf(spStr, "%d.%d%d MB", n1, n2/10, n2%10);
}
else if(MMI_MYDATA_SIZE_K_BYTE <= ulSize)
{
n1 = ulSize>>10; /*The same as ulSize/MMI_MYDATA_SIZE_K_BYTE*/;
n2 = ulSize & 0x000003FF; /*The same as ulSize%MMI_MYDATA_SIZE_K_BYTE;*/
n2 *= 100;
n2 >>= 10;
sprintf(spStr, "%d.%d%d KB", n1, n2/10, n2%10);
}
else
{
sprintf(spStr, "%d Byte", ulSize);
}
}
FPGA
除法
实现
除法
器的
实现
主要有三种方式:LUTMult、Radix-2、High Radix。 1、LUTMult:使用除数的有限精度倒数组成的简单查找表进行查找,然后乘以被除数。 A.使用DSP、块RAM和少量FPGA逻辑
实现
。 B.仅支持输出余数,不支持...
5.6
除法
器的
实现
现在,我们已经将
除法
的运算过程用适合硬件
实现
的方法描述出来了,那么就可以着手开始设计真正的硬件的
除法
器了。那么在这一节,我们将首先整理出一个
除法
器的工作流程,然后通过一个事例来分析
除法
器的结构和它的...
除法
器的verilog
实现
除法
器在FPGA里怎么
实现
呢?当然不是让用“/”和“%”
实现
。 在Verilog HDL语言中虽然有除的运算指令,但是除运算符中的除数必须是2的幂,因此无法
实现
除数为任意整数的
除法
,很大程度上限制了它的使用领域。并且...
数字IC经典电路(3)——经典
除法
器的
实现
(
除法
器简介及Verilog
实现
)
除法
器是一种用于执行
除法
运算的电路或器件。在数字电路中,
除法
器经常被用作重要的计算单元,其主要功能是将一个数除以另一个数并给出商和余数。与加法器和减法器类似,
除法
器也属于算术逻辑单元(ALU)的一种。不同...
vhdl变量
除法
_在VHDL中
实现
高精度快速
除法
在FPGA中,有加、减、乘、除的算法指令,但
除法
中除数必须为2的幂,因此无法
实现
除数为任意数的
除法
;而二进制
除法
算法中包含了减法、乘法、数的分解与合成、试商的判断等多种操作过程。因此,
除法
运算过程非常复杂,...
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章