- 此问题在此处已有答案**:
How to format output to a byte array with no_std and no allocator?(2个答案)
2天前关闭。
这篇文章是昨天编辑并提交审查的。
我正在为Rust OS做一个计算器操作系统。我把自己陷入了一个处理数学的深坑,但我不想重做我有两个号码(它们在技术上是f64
,但永远不会有浮点),我需要添加Javascript样式(1 + "1" = 11
)。这都是在#![no_std]
环境中,所以我不能使用类似format!()
的东西,甚至不能使用拥有的String
,因为我没有分配器。
rust 不是JS,所以我不能1 + "1"
,显然+
是一个二进制运算。
编辑:我最终使用了How to format output to a byte array with no_std and no allocator?中建议的arrayvec
库
2条答案
按热度按时间pvcm50d11#
你可以将第一个数字乘以第二个数字的10的位数幂,如下所示:
3npbholx2#
将数字转换为整数,然后计算
b
除以10所需的次数,直到达到0,然后将a
乘以10,计算相同的次数:Playground