gpt4 book ai didi

C++将整数 vector 转换为整数

转载 作者:行者123 更新时间:2023-11-27 23:48:53 25 4
gpt4 key购买 nike

正在网上搜索简单指南,但找不到。

我构建了一个从十进制到二进制的转换器,并将 1 和 0 保存在一个 vector 中。我现在想将该 vector 变成一个整数。我找到了各种方法(我不太了解)转换为字符串而不是整数,可以避免吗?我希望它尽可能简单。

这是我的代码:

c.hpp:

#ifndef C_HPP
#define C_HPP
#include <vector>


class Dualrechnung{
private:
std::vector<int> vec;
int z = 123456; //Eingegebene Zahl
int t_z = z; //temp Zahl

public:
Dualrechnung();
~Dualrechnung();
};

#endif

c.cpp:

#include <vector>
#include <cmath>
#include <sstream>
#include "c.hpp"
#include <iostream>


Dualrechnung::Dualrechnung()
{
int b;
for (int i=0; (t_z-(pow(2,i))) >= 0; i++) //finds biggest power of 2 in z
{
b= i;
}
t_z-=pow(2,b); //whats left after the biggest power
vec.push_back(1);
for(int i = b; i > 0; --i) //checks for every power of 2 multiples smaller than b if they exist in z. if they are, saves 1 for that power in the vector and if not, saves 0.
{
b--;
if((t_z-pow(2,b)) >= 0)
{
vec.push_back(1);
t_z-=pow(2,b);
}
else{vec.push_back(0);}
}

// here I'd like that integer with the information from the vector

int bin; //binary value of z
std::cout << z << " in Dual ist " << bin;

}


Dualrechnung::~Dualrechnung(){}

c_test.cpp:

#include "c.cpp"
#include <iostream>


int main(){

Dualrechnung *d = new Dualrechnung();
delete d;
return 0;
}

最佳答案

如果我理解正确,您需要将 int 转换为一组位,反之亦然。只需使用 std::bitset它具有来自 unsigned long 的构造函数和将其转换回来的方法(您也可以将其转换为 0 和 1 的字符串/从字符串转换)。

关于C++将整数 vector 转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48307664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com