C语言中十进制和二进制怎么转换
3个回答
展开全部
#include
#include
#include
using namespace std;
string zhuanhuan(int num,int base)
{
string digitChar="0123456789" ,numStr= "";
stackstk;
do{
stk.push(digitChar[num%base]);
num /= base;
}while(num!=0);
while(!stk.empty())
{
numStr += stk.top();
stk.pop();
}
return numStr;
}
int main()
{
int m , n;
cout<< "请输入要转换的数字:" ;
cin >> m;
cout<< "请输入要转换的进制:";
cin >> n;
cout << "将"<< m << "转换成" << n << "进制后为:" ;
cout << zhuanhuan(m,n) << endl;;
system("pause");
return 0;
}
以上代码能实现任意进制之间的转换!希望对你有帮助!!
#include
#include
using namespace std;
string zhuanhuan(int num,int base)
{
string digitChar="0123456789" ,numStr= "";
stackstk;
do{
stk.push(digitChar[num%base]);
num /= base;
}while(num!=0);
while(!stk.empty())
{
numStr += stk.top();
stk.pop();
}
return numStr;
}
int main()
{
int m , n;
cout<< "请输入要转换的数字:" ;
cin >> m;
cout<< "请输入要转换的进制:";
cin >> n;
cout << "将"<< m << "转换成" << n << "进制后为:" ;
cout << zhuanhuan(m,n) << endl;;
system("pause");
return 0;
}
以上代码能实现任意进制之间的转换!希望对你有帮助!!
展开全部
二进制数第0位的权值是2的0次方,第1位的权值是2的1次方…
所以,设有一个二进制数:01101,转换为10进制为:
01101换算成
十进制
第0位
0
*
2的0方=0
第1位
0
*
2的1方=0
第2位
1
*
2的2方=4
第3位
0
*
2的3方=0
第4位
0
*
2的4方=0
第5位
1*2的5方=32
+
=36
所以,设有一个二进制数:01101,转换为10进制为:
01101换算成
十进制
第0位
0
*
2的0方=0
第1位
0
*
2的1方=0
第2位
1
*
2的2方=4
第3位
0
*
2的3方=0
第4位
0
*
2的4方=0
第5位
1*2的5方=32
+
=36
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
10000101
对于这个来说
一般
最高位
为
符号位
0为+,
1为-
所以为
-5;
short类型占2个字节,也就是
16位,
最大值为0111
1111
1111
1111。
进制之间的
转换,比如
10进制92
转换成
2进制,92/2
=
46
余数是
0,46/2
=
23
余数是
0,23/2
=
11
余数是
1,
11/2
=
5,
余数是1,
5/2
=
2,余数是
1,
2/2
=
1,
余数是
0,
所以2进制为
0111100(这里面的余数是从后往前计的)。
对于这个来说
一般
最高位
为
符号位
0为+,
1为-
所以为
-5;
short类型占2个字节,也就是
16位,
最大值为0111
1111
1111
1111。
进制之间的
转换,比如
10进制92
转换成
2进制,92/2
=
46
余数是
0,46/2
=
23
余数是
0,23/2
=
11
余数是
1,
11/2
=
5,
余数是1,
5/2
=
2,余数是
1,
2/2
=
1,
余数是
0,
所以2进制为
0111100(这里面的余数是从后往前计的)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询