首页上一页 1  下一页尾页 3 条记录 1/1页
        数制转换
                 	
                        发表在C语言图书答疑
                        2010-12-17                                                
                    		
                                                                            	
                        
                        
                    
                    
                    	是否精华
                    	是
                    	否
                    
                    
                    
                            版块置顶:
                            是
                            否
                        
                    
                                           在《C语言程序开发范例宝典》一书中关于n进制转换为十进制数:
#include<stdio.h>
#include<string.h>
main()
{
long t1;
int i,n,t,t3;
char a[100];
printf("input a number string:\n");
gets(a);
strupr(a);
t3=strlen(a);
t1=0;
printf("input n(2 or 8 or 16):\n");
scanf("%d",&n);
for(i=0;i<t3;i++)
{
if(a[i]-'0'>=n&&a[i]<'A'||a[i]-'A'+10>=n)
{
printf("data error!\n");
exit(0);
}
if(a[i]>='0'&&a[i]<='9')
t=a[i]-'0';
else if(n>=11&&(a[i]>='A'&&a[i]<='A'+n-10))
t=a[i]-'A'+10;
t1=t1*n+t; /*这个的算法是怎样的?*/
}
printf("the decimalism is %ld\n",t1);
}
这个程序让我很难理解,例如我输入二进制的1100,输出为12,我只知道是按0乘2的0次方+0乘2的1次方+1乘2的2次方+1乘2的3次方=0+0+4+8=12算出来,而t1=t1*n+t实在让人费解,是用什么算法的?有没有人能一步一步代入循环中计算出来好让我理解,谢谢。
                
        	
        
        
    #include<stdio.h>
#include<string.h>
main()
{
long t1;
int i,n,t,t3;
char a[100];
printf("input a number string:\n");
gets(a);
strupr(a);
t3=strlen(a);
t1=0;
printf("input n(2 or 8 or 16):\n");
scanf("%d",&n);
for(i=0;i<t3;i++)
{
if(a[i]-'0'>=n&&a[i]<'A'||a[i]-'A'+10>=n)
{
printf("data error!\n");
exit(0);
}
if(a[i]>='0'&&a[i]<='9')
t=a[i]-'0';
else if(n>=11&&(a[i]>='A'&&a[i]<='A'+n-10))
t=a[i]-'A'+10;
t1=t1*n+t; /*这个的算法是怎样的?*/
}
printf("the decimalism is %ld\n",t1);
}
这个程序让我很难理解,例如我输入二进制的1100,输出为12,我只知道是按0乘2的0次方+0乘2的1次方+1乘2的2次方+1乘2的3次方=0+0+4+8=12算出来,而t1=t1*n+t实在让人费解,是用什么算法的?有没有人能一步一步代入循环中计算出来好让我理解,谢谢。

 
	
                                                 VIP会员
VIP会员 购物车
购物车

 私信
                         私信 
                     发表新帖
发表新帖 立即签到
立即签到 
        		  
        		 
         		 关注
关注
                  回复
 回复 支持(
                	支持( 反对(
                    反对( 
               			  
                







 
                     
                     
					 
						 
						 
						 
						