C/C++教程

十进制正整数与二进制字符串的转换(C++)

本文主要是介绍十进制正整数与二进制字符串的转换(C++),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Function one:

//十进制数字转成二进制字符串
string Binary(int x) 
{
    string s = "";
    while(x){
        if(x % 2 == 0) s = '0' + s;
        else s = '1' + s;
        x /= 2;
    }
    return s;
}

Function two:

//二进制字符串变为十进制数字
int Decimal(string s)  
{
     int num = 0, len = s.length() - 1;
     for(int i = 0; s[i]; i++){
        if(s[i] == '1')  num += pow(2, len - i);
     }
     return num;
}

Run:

#include<bits/stdc++.h>
using namespace std;
//十进制数字转成二进制字符串
string Binary(int x) 
{
    string s = ""; //定义空字符串,那么如果输入x=0,则返回值为空
    while(x){
        if(x % 2 == 0) s = '0' + s;
        else s = '1' + s;
        x /= 2;
    }
    return s;
}
//二进制字符串变为十进制数字
int Decimal(string s)  
{
     int num = 0, len = s.length() - 1;
     for(int i = 0; s[i]; i++){
        //利用pow函数实现次幂运算
        if(s[i] == '1')  num += pow(2, len - i);
     }
     return num;
}
int main(void)
{
    int num;
    string s;
    cin >>num; 
    cout <<Binary(num) <<endl;  //二进制字符串输出
    cout <<Decimal(Binary(num)) <<endl; //转回十进制
    cin >>s;
    cout <<Decimal(s) <<endl;  //输出s对应的十进制数
    return 0;
}

Result:

 

这篇关于十进制正整数与二进制字符串的转换(C++)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!