网上有关“c语言10进制转2进制”话题很是火热,小编也是针对c语言10进制转2进制寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。
#include<stdio.h>
int getnumber(char *s,int *n)
{ char *p=s;
int k,m; *n=0; m=1; while ( *p != ')' ) p++; k=atoi(p+1); p--; if ( k==2 || k==10 ) { while ( *p!='(' ) { (*n)+=((*p)-'0')*m; m*=k; p--; }return k;
} else return 0;}
void exchange(char *s,int n,int k)
{ char str[80],str1[80];
int e,m,i; e=( k==2 )?(10):(2); m=0; while ( n ) { str[m]=n%e+'0'; n/=e; m++; } for ( i=0;i<m;i++ ) str1[i]=str[m-i-1]; str1[i]=0; sprintf(s,"(%s)%d",str1,e);}
void main()
{ char str[256],str1[256];
?int n,k;
?scanf("%s",str);
?k=getnumber(str,&n);
?if ( k )
?{ exchange(str1,n,k);
printf("%s ==> %s\n",str,str1);
?}
}
讲下思路吧,如167.36把整数部分除2取余,小数部分乘2取整,组合后就是二进制了,二进制数的整数部分从低到高每三位表示一个八进制位,每四位表示一个十六进制位,最后划分不足的在前面补0,而小数部分则是从高到底分割
例: 2A5.29(16)=001010100101.00101001(2)
=1245.121(8)
=2^9+2^7+2^5+2^2+1+2^(-3)+2^(-5)+2^(-8)=...(10)
关于“c语言10进制转2进制”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!
本文来自作者[任我上青云]投稿,不代表天华号立场,如若转载,请注明出处:https://thwy.com.cn/th/8266.html
评论列表(4条)
我是天华号的签约作者“任我上青云”!
希望本篇文章《c语言10进制转2进制》能对你有所帮助!
本站[天华号]内容主要涵盖:生活百科,小常识,生活小窍门,知识分享
本文概览:网上有关“c语言10进制转2进制”话题很是火热,小编也是针对c语言10进制转2进制寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。#in...