十进制转换为N进制

来源:互联网 发布:软件开发项目管理 编辑:程序博客网 时间:2024/05/29 20:04

一)简洁的整数转换为字符串的形式

char *simple_itoa(unsigned int i){    /* 21 digits plus null terminator, good for 64-bit or smaller ints     * for bigger ints, use a bigger buffer!     *     * 4294967295 is, incidentally, MAX_UINT (on 32bit systems at this time)     * and is 10 bytes long     */    static char local[22];    char *p = &local[21];    *p = '\0';    do {        *--p = '0' + i % 10;        i /= 10;    } while (i != 0);    return p;}

二)可以借鉴上面的方法(条件是字符串的长度要有规定)

#include <stdio.h>#include <string.h>void ReverseString(char *pString){if(NULL == pString)return ;char *pBegin = pString;char *pEnd   = pString + strlen(pString) - 1;while(pBegin < pEnd){char temp = *pBegin;*pBegin = *pEnd;*pEnd   = temp;++ pBegin;-- pEnd;}}char * FromTenToN (const int num, const unsigned int N){if(NULL == num || N < 2 || N > 16)return NULL;char *result = new char[];int tmpNum = num;    unsigned int nCount = 0;while(tmpNum){int tmp = tmpNum % N ;if(tmp >= 10)tmp = 'A' + (tmp - 10) - '0';result[ nCount ++] = tmp + '0';tmpNum /= N;}result[ nCount ] = '\0';ReverseString(result);return result;}int main(){printf("the Result is :%s\n",FromTenToN(166, 16));}


原创粉丝点击