gpt4 book ai didi

c++ - C++ 中的位集初始化

转载 作者:行者123 更新时间:2023-11-28 01:34:06 25 4
gpt4 key购买 nike

class Address {

private :

unsigned char arr[4] = {0};
bitset<8> bits[4];

public :

Address(){
char ip[50];
char temp[4];
cout <<"Enter your IP ADDRESS";
cin >>ip;
int i;
int k=0;
for(i=0;ip[i]!='\0';i++){

if(ip[i]!='.') arr[k]=arr[k]*10 + (ip[i]-48);
else k++;

//Easy PARSE
}
}
};

我需要实现 Address IPV4 类。当我调用 Address 的构造函数时我正在学习的类-> 将输入解析为一个 4 的 8 位数组,这基本上是 IPV4 的 4 个八位字节。255.255.255.255 例如。现在我需要将它转换为 4 的二进制数组。我不想为此创建外部二进制转换器。我愿意使用 bitset 来实现它.现在的问题是,我还没有找到 bitset函数让我初始化位(从十进制转换为 bitset )除了它的构造函数,它在我的 Address 时被调用类被调用。我可以通过使用 4 个单独的成员指针来键入 bitset<8> 来做到这一点并在 Address() 中分配每个,但这是非常不优雅的方法。有任何想法吗? :/

最佳答案

您可以在构造后使用赋值运算符更改bitset

这可能是您正在寻找的部分:

for(int i=0; i <4; i++) {
bits[i] = bitset<8>(arr[i]);
}

关于c++ - C++ 中的位集初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50122958/

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