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
класса, я беру-> парсинг ввода в 8-битный массив из 4, что в основном составляет 4 октета IPV4.
255.255.255.255 Например.
Теперь мне нужно преобразовать его в двоичный массив 4. Я не хочу создавать для этого внешний двоичный преобразователь. Я готов реализовать это, используя bitset
. Теперь проблема в том, что я не нашел функцию bitset
, которая позволяла бы мне инициализировать биты (преобразовать из десятичного в bitset
) отдельно от ее конструктора, который вызывается, как только вызывается мой класс Address
. Я могу сделать это, имея 4 отдельных указателя члена для типа bitset<8>
и выделяя каждый из них в Address()
, но это очень не элегантный подход. Есть идеи? : /