其他转换请参考博文:
C++编程积累——C++实现十进制与二进制之间的互相转换
目录
十进制与八进制之间的转换
十进制转换八进制
C++实现十进制转换二进制
八进制转换十进制
C++实现八进制转换十进制
与二进制类似,十进制转八进制对8整除,得到的余数的倒序即为转换而成的八进制
主函数main.cpp为:
#include
#include
#include
#include
#include
using namespace std;
int main()
{
int N;
cout << "Please enter the number: ";
cin >> N;
cout << endl;
//十进制转八进制的声明和调用
void convert_10_to_8(int num);
convert_10_to_8(N);
}
十进制转换为八进制函数为:
#include
#include
#include
#include
#include
using namespace std;
void convert_10_to_8(int num)
{
vector ivec;
int Num = num;
while (num != 0)
{
ivec.push_back(num % 8);
num = num / 8;
}
vector::size_type sz = ivec.size();
vector ivec2;
for (vector::size_type index = 0; index != sz; ++index)
ivec2.push_back(ivec[sz - 1 - index]);
cout << Num << "十进制转八进制后为:";
for (auto item : ivec2)
cout << item;
cout << endl << endl;
}
运行结果:
将八进制从右往左从零次幂开始乘以八进制数并求和
C++主函数为:
#include
#include
#include
#include
#include
using namespace std;
int main()
{
double convert_8_to_10();
convert_8_to_10();
return 0;
}
八进制转十进制函数为:
#include
#include
#include
#include
using namespace std;
double convert_8_to_10()
{
//输入二进制数并存储在vector变量ivec2中
cout << "Please enter the BaJInZhi numbers: " << endl;
int n;
vector ivec2;
while (cin >> n)
{
ivec2.push_back(n);
}
//八进制转十进制计算
double sum = 0, times;
vector::size_type sz = ivec2.size();
for (vector::size_type index = 0; index != sz; ++index)
{
times = pow(8, sz - 1 - index);
sum += ivec2[index] * times;
}
//输出转化后的结果
cout << "8进制——";
for (vector::size_type index = 0; index != sz; ++index)
cout << ivec2[index];
cout << "转10进制为: ";
cout << sum << endl;
return 0;
}
运行结果为: