String 将整数转换为字符串
我正在学习汇编语言,想写一个函数把一个数字转换成一个字符串。我要编写的函数的签名类似于C:String 将整数转换为字符串,string,integer,assembly,String,Integer,Assembly,我正在学习汇编语言,想写一个函数把一个数字转换成一个字符串。我要编写的函数的签名类似于C: int numToStr(long int num, unsigned int bufLen, char* buf) 函数应返回转换成功时使用的字节数,否则返回0 我目前的方法是一个简单的算法。在所有情况下,如果缓冲区已满,则返回0 检查数字是否为负数。如果是,将-字符写入buf[0]并增加缓冲区中的当前位置 重复除以10并将剩余的数存储在缓冲区中,直到除法产生0 将缓冲区中的数字反转 这是进行这种转换
int numToStr(long int num, unsigned int bufLen, char* buf)
函数应返回转换成功时使用的字节数,否则返回0
我目前的方法是一个简单的算法。在所有情况下,如果缓冲区已满,则返回0
-
字符写入buf[0]
并增加缓冲区中的当前位置0
这是进行这种转换的最佳方式吗?这就是我所看到的
itoa
的每一个实现的基本原理
有一件事你没有提到,但确实想注意的是边界检查(即确保你没有写过bufLen
)
关于符号:一旦你写了-
,你就需要对值求反。此外,-
需要从最终冲销中排除;另一种方法是记住开头的符号,但只写在结尾(正好在反转之前)
最后一个关键点是确保零被正确地写入,即作为
0
而不是空字符串。这种方法的一个问题是,您将以相反的顺序获取数字。@cnicutar您阅读了我方法的第3点吗?是的,谢谢。我已经做了边界检查。写下-later也是一种选择。