zoukankan      html  css  js  c++  java
  • 进制转换——10进制->任意(36以内)进制

    把给定10进制正整数转换成任意进制,并以字符串形式输出。

    核心算法:对进制取余,丢弃最低位,循环

    #include <stdio.h>
    #include <math.h>
    #include <string.h>
    
    //10进制转任意小于10的进制
    void DecToArbitrary(char *str,int n,int radix)
    {
    	int num=0;
    	int i=0;
    	while(n!=0)
    	{
    
    		num+=(n%radix)*(int)pow(10.0,i);
    		n/=radix;
    		++i;
    	}
    
    	sprintf(str,"%d",num);
    }
    
    
    void StrReverse(char *str)
    {
    	char tmp;
    	int len=strlen(str);
    	for(int i=0,j=len-1; i<=j; i++,j--)
    	{
    		tmp		= str[i];
    		str[i]	= str[j];
    		str[j]= tmp;
    	}
    	str[len]='';
    }
    
    //十进制转任意进制(小于等于36)
    void DecToArbitrary2(char *str,int n,int radix)
    {
    	int i=0;
    	char ch[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    	while(n!=0)
    	{
    		str[i++]=ch[(n%radix)];
    		n/=radix;
    	}
    	StrReverse(str);
    }
    
    int main()
    {
    	char str[100]="";
    
    	DecToArbitrary2(str,16,16);
    	printf("%s
    ",str);
    
    
    	return 0;
    }
    
  • 相关阅读:
    46 Simple Python Exercises-Higher order functions and list comprehensions
    IDEA一些设置
    DDD建模案例----“视频课程”场景
    LA 4727
    uva 1377
    uva 1421
    UVA
    LA 4731
    uva 11404
    uva 11143
  • 原文地址:https://www.cnblogs.com/TaoR320/p/12680206.html
Copyright © 2011-2022 走看看