二进制vs十进制

Posted zhanghuawei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二进制vs十进制相关的知识,希望对你有一定的参考价值。

题目描述

    对于一个十进制数A,将A转换为二进制数,然后按位逆序排列,再转换为十进制数B,我们乘B为A的二进制逆序数。     例如对于十进制数173,它的二进制形式为10101101,逆序排列得到10110101,其十进制数为181,181即为173的二进制逆序数。

输入描述:

    一个1000位(即10^999)以内的十进制数。

输出描述:

    输入的十进制数的二进制逆序数。
示例1

输入

复制
173

输出

复制
181

代码:

#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
string f(int m,int n,string a)///将m进制转化为n进制
{
string b;
int l=a.size();
for(int i=0;i<l;)
{
int k=0;
for(int j=i;j<l;j++)
{
int t=(k*m+a[j]-‘0‘)%n;
a[j]=(k*m+a[j]-‘0‘)/n+‘0‘;
k=t;
}
b+=char(k+‘0‘);
while(a[i]==‘0‘)i++;///跳过高位产生的0
}
return b;
}
int main()
{
string a,b,c;
while(cin>>a)
{
b=f(10,2,a);
c=f(2,10,b);
reverse(c.begin(),c.end());
cout<<c<<endl;
}
return 0;
}

技术图片

以上是关于二进制vs十进制的主要内容,如果未能解决你的问题,请参考以下文章

当我切换到包含片段的活动时应用程序崩溃(二进制 XML 文件第 10 行:二进制 XML 文件第 10 行:膨胀类片段时出错)

c_cpp C片段将十进制转换为二进制

如何使用 VS2008 编译所以二进制不需要 .NET?

二进制 XML 文件第 13 行:膨胀类片段时出错

Android - 使用活动和片段导航 - 二进制 XML 文件错误

第 7 行的 InflateException 二进制 XML 文件:膨胀类片段时出错