zoukankan      html  css  js  c++  java
  • 二进制数代码进制转换

    题记:写这篇博客要主是加深自己对二进制数代码的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢。

        进制转换

        这个问题比拟基本,也比拟简单,直接给出代码

        每日一道理
    心的本色该是如此。成,如朗月照花,深潭微澜,不论顺逆,不论成败的超然,是扬鞭策马,登高临远的驿站;败,仍滴水穿石,汇流入海,有穷且益坚,不坠青云的傲岸,有“将相本无主,男儿当自强”的倔强。荣,江山依旧,风采犹然,恰沧海巫山,熟视岁月如流,浮华万千,不屑过眼烟云;辱,胯下韩信,雪底苍松,宛若羽化之仙,知退一步,海阔天空,不肯因噎废食。
    #include<stdio.h>
    #include<string.h>
    #include<math.h>
    
    /*第一种方法:二进制数转整型*/
    int b2i(char *bStr){
    	int count=0;
    	while(*bStr!=0){
    		count=*bStr-'0'+count*2;
    		bStr++;
    	}
    	return count;
    }
    
    /*第二种方法:二进制数转整型*/
    int b2ix(char *bStr){
    	int count=0,len=strlen(bStr),i,j;
    	for(i=len-1,j=0;i>=0;i--,j++){
    		count+=(bStr[i]-'0')*(int)pow(2,j);
    	}
    	return count;
    }
    
    /*字符串逆置*/
    void rotateStr(char *res,int len){
    	int mid=len/2,i;
    	char tmp;
    	for(i=0;i<mid;i++){
    		tmp=res[i];
    		res[i]=res[len-1-i];
    		res[len-1-i]=tmp;
    	}
    }
    
    /*移位法:整型n转2进制*/
    void i2b(int n,char res[]){
    	int i=0;
    	do{
    		if( (n&1)==0){
    			res[i++]=0+'0';	
    		}else{
    			res[i++]=1+'0';
    		}
    		n=n>>1;
    	}while(n>0);
    	res[i]=0;
    	rotateStr(res,i);
    }
    
    /*辗转相除法:整型n转radix进制*/
    void i2r(int n,int radix,char res[]){
    	int i=0;
    	do{
    		res[i++]=n%radix+'0';
    		n/=radix;
    	}while(n>0);
    	res[i]=0;
    	rotateStr(res,i);
    }
    
    /*radix进制数转整型*/
    int r2i(int radix,char *str){
    	int count=0;
    	while(*str!=0){
    		count=*str-'0'+count*radix;
    		str++;
    	}
    	return count;
    }
    
    void main(){
    	char bStr[1024]="11010";
    	int n;
    	printf("str=%s\n",bStr);
    	printf("b2i=%d\n",(n=b2i(bStr)));
    	printf("b2i=%d\n",b2ix(bStr));
    	
    	char res[1024];
    	i2r(n,8,res);
    	printf("i2r=%s\n",res);
    	i2b(n,res);
    	printf("i2b=%s\n",res);
    
    	printf("b2r=%d\n",r2i(4,bStr));
    
    }

    文章结束给大家分享下程序员的一些笑话语录: 现在社会太数字化了,所以最好是有一个集很多功能于一身的设备!

  • 相关阅读:
    火狐插件火狐黑客插件将Firefox变成黑客工具的七个插件
    memcache安装环境:WINDOWS 7
    PHP正则表达式
    968. 监控二叉树 力扣(困难) dfs 官方说DP
    375. 猜数字大小 II 力扣(中等) 区间动态规划、记忆化搜索
    629. K个逆序对数组 力扣(困难) 区间动态规划
    剑指 Offer 51. 数组中的逆序对 力扣(困难) 巧用归并排序算法
    488. 祖玛游戏 力扣(困难) dfs
    16. 最接近的三数之和 力扣(中等) 双指针
    319. 灯泡开关 力扣(中等) 数论
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3087292.html
Copyright © 2011-2022 走看看