admin管理员组文章数量:1794759
二进制转换器
实现输入一个十进制数,输出其对应的二进制数
方法一:自创数组法
#include<stdio.h> #include<math.h> #include<stdlib.h> int main() { int i,n; long long m; printf("请输入一个十进制数:"); scanf("%lld",&m); n=log(m)/log(2)+2;//用到数学中的换底公式求以2为底的对数 char t[n]; memset(t,'0',sizeof(t)); for(i=0;i<n;i++) { if(m>pow(2,n-i-1)) { m-=pow(2,n-i-1); t[i]='1'; } else if(m==pow(2,n-i-1)) { m-=pow(2,n-i-1); t[i]='1'; } } t[n]='\\0'; printf("%s",t); }方法二 bitset法:
#include<bits/stdc++.h> using namespace std; int main() { int n; long long m; scanf("%lld",&m); n=log(m)/log(2)+1; cout<<bitset<32>(m); }两者的对比:第一种手写的方法可以将结果存入字符数组中,方便后续的操作,但是,对比window中的计算器后发现,在十进制数位19个8时计算结果出错,window的上限是19位10进制数,而方法二的结果与windows一致。
本文标签: 转换器
版权声明:本文标题:二进制转换器 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686574201a83457.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论