永发信息网

输出一个字符,如何得到二进制形式

答案:3  悬赏:40  手机版
解决时间 2021-03-12 10:34
输出一个字符,如何得到二进制形式
最佳答案
当然可以输出了的啊,但是在输出的时候需要进行转换的,现在提供一个十进制到任意进制的转换程序,你可以在编写程序的时候参考一下。
源程序如下:
#include<stdio.h>
#include<math.h>
void main()
{
int i=0,n,j,a[20],b[20],k,c=0;
double m,x,d;
printf("请输入需要转换的数:");
scanf("%lf",&x);
printf("请输入要转换成的进制(1<N<=16):");
scanf("%d",&n);
if(x<0)
m=fabs(x);
else
m=x;
k=(int)m;//强制类型转换,可以使用k=(int)m;代替,从而更加的一目了然
while(k)//判定需要转换的数是否变为0
{
a[i++]=k%n;//取余,进行进制转换,但是顺序与正确值相反
k/=n;//转换一位之后进行相应的变化
}
if(m!=(int)m)//选择性计算,如果是整数就不用进行这一步的计算了,这样可以节约程序的运行时间
{
d=m-(int)m;//取小数部分
while(d!=0)
{
b[c]=(int)(d*n);//算法为×N取整
d=d*n-b[c];
c++;
if(c>=10)
break;//主要是控制小数后面万一出现无限小数的时候好跳出循环以免出现死循环
}
}
printf("转换结果为:");
if(x<0)
printf("-");
for(j=i-1;j>=0;j--)//反序输出,大于10的数字进行相应的变化
{
if(a[j]==10)
printf("A");
else
if(a[j]==11)
printf("B");
else
if(a[j]==12)
printf("C");
else
if(a[j]==13)
printf("D");
else
if(a[j]==14)
printf("E");
else
if(a[j]==15)
printf("F");
else
printf("%d",a[j]);
}
if(m!=(int)m)//选择性输出,这样可以节约输出时间和程序的运行时间
{
printf(".");
for(j=0;j<c;j++)//正序输出
{
if(b[j]==10)
printf("A");
else
if(b[j]==11)
printf("B");
else
if(b[j]==12)
printf("C");
else
if(b[j]==13)
printf("D");
else
if(b[j]==14)
printf("E");
else
if(b[j]==15)
printf("F");
else
printf("%d",b[j]);
}
}
if(c>=10)//如果是无限小数则在后以省略号表示
printf("......");
printf("\n");//输出换行,以使程序的输出结果美观
}
可能在程序的编写上有点臃肿的,使用函数可以简化很多的,但是最为参考就没有使用函数的啦,你在使用的过程中可以适当修改使用。祝你学的开心!
全部回答
看你用什么语言了,一般按照整形输出可以得到这个字符的值,如果二进制输出就要看你用的语言支持不了,不过不管如何,有了十进制数,转成二进制也是一件小事情。
#include &lt;stdio.h&gt; int main() { char str[100]; int i,n=0; scanf(&quot;%s&quot;,str); for(i=0;str[i]!=&apos;\0&apos;;i++) { if(str[i]==&apos;1&apos; || str[i]==&apos;0&apos;) //判断第i个字符是否是&apos;1&apos;或&apos;0&apos;,如果是执行下面语句 { n&lt;&lt;=1; //把已经得到的n值左移1位,等同于乘以2 n+=str[i]-&apos;0&apos;; //字符&apos;1&apos;减去&apos;0&apos;就等于1,字符&apos;0&apos;减去&apos;0&apos;当然是0,所以这句的意思是把第i个字符所对应的数加到n上去 } else { printf(&quot;不是二进制数\n&quot;); return 1; } } printf(&quot;%d\n&quot;,n); }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
雪玲妃的卸妆水好用,还是佰草集的卸妆水好用
火车站蚌埠涂山热电厂、蚌埠新源电厂、蚌埠丰
办公室照明通常采用()绝缘作为电源连接线。A.
书坊乡司法所地址在哪,我要去那里办事
大早上再走廊里看到一条蛇寓意是好还是不好
淄博市可口可乐公司在那里?
快龙带什么道具好
全网通手机卖场(汝州第017店)这个地址在什么
随着航天观测的不断深入,古人称为“玉轮”、
法士特10档变速箱倒档齿在什么位置
数学不好的脑子好使的报软件工程行吗!
描写口才和动作的成语
刚买3个月的汽车,后座椅坐了下陷,是什么原因
在重庆市巴南区鱼洞,哪里有资料员培训班?
上月计提工资 这月发放工资该怎么做账
推荐资讯
【虚拟语气 I will do it better if the teac
玉米糁子发绿还能吃吗
三星note3屏幕是什么材质
火拼双扣最多翻几翻?最大的贡献分为多少?4
求ps专业高手,帮帮我修改成绩单,分全给了~
五代有个叫冯道的人,一生中也做过不少对百姓
攀枝花农林科学研究院生物能源与生态研究所怎
Mac系统能玩什么网络游戏
弧长的曲线积分∫L x siny ds,其中L为连续点
人家说你13什么意思
正宗湖南小炒肉怎么做好吃
已知正方形大比小正方形边长多4,大正方形的面
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?