어셈블러를 배우려고하고 숫자를 문자열로 변환하는 함수를 작성하려고합니다. 변환이 성공하면정수를 문자열로 변환
int numToStr(long int num, unsigned int bufLen, char* buf)
기능은 사용 된 바이트 수를 반환해야하고, 그렇지 않으면 0
: 내가 쓰고 싶은 함수의 서명에서 더 C와 같은 방식으로 다음과 같습니다.
현재 접근 방식은 간단한 알고리즘입니다. 모든 경우 버퍼가 가득차면 0을 반환하십시오.
- 숫자가 음수인지 확인하십시오. 그렇다면 char을
buf[0]
에 작성하고 버퍼의 현재 위치를 증가 시키십시오. - 나누기가
0
이 될 때까지 10으로 나누고 나머지를 버퍼에 반복적으로 저장하십시오. - 버퍼의 번호를 반대로 지정하십시오.
이 변환을 수행하는 가장 좋은 방법입니까?
이 접근법의 한 가지 문제점은 역순으로 숫자를 가져 오는 것입니다. – cnicutar
@cnicutar 내 접근 방식의 포인트 3을 읽었습니까? – fuz
보지 못했습니다 :-) – cnicutar