數制轉換函數

EXPORT UW ltostr(UW Val,B *pString,UB Base,UW Length)
{
    B  c, *pInit;
    UB  i,j;
    UW Len,SwapLen;
    *pString='\0';
    pInit=pString;
    if(Val==0) {
        *pString++='0';
        *pString='\0';                          
    }
    switch(Base) {
        case 10:                                
        for(;Val>0;) {
                i=Val%Base;
                Val=Val/Base;
                *pString++=(B)((UB)'0'+i);
            }
            *pString='\0';
            break;
        case 16:                                
            for(;Val>0;) {
                i=Val<span style="font-family: Arial, Helvetica, sans-serif;">%Base</span><span style="font-family: Arial, Helvetica, sans-serif;">;</span>
                Val=Val/Base;
                if(i<=9) {
                    *pString++=(B)((UB)'0'+i);
                } else {
                    *pString++=(B)((UB)'A'+i-10);
                }
            }
            *pString='\0';
            break;
        default:
            break;
    }
    Len=strlen(pInit);
    SwapLen=Len;

    if(Length>Len) {
        for(i=Len;i
            *(pInit+i)='\0';
        }
        *(pInit+Length)='\0';
    }

    if(SwapLen>0) {
        for(i=0,j=SwapLen - 1;i
            c=*(pInit+i);
            *(pInit+i)=*(pInit+j);
            *(pInit+j)=c;
        }
    }
    return SwapLen;
}

發佈了35 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章