• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Klasa dla operacji na IP.

VPS Starter Arubacloud
0 głosów
260 wizyt
pytanie zadane 16 czerwca 2016 w C i C++ przez Ehlert Ekspert (212,630 p.)

Cześć.

Krótko zwięźle i na temat. Najlepszy sposób na trzymanie IP w klasie na którym będę operować.

short ip[4]; 
bool ip[4][8];
std::bitset<8> ip[4];
std::string ip;
char ip[4][8];
char * ip;

Chciałbym zaznaczyć, że chcę przeprowadzać operacje na bitach, więc ciągłe rzutowanie z char/string na liczbę będzie... Nieprofesjonalne, niewydajne?

2 odpowiedzi

+2 głosów
odpowiedź 17 czerwca 2016 przez draghan VIP (106,230 p.)
wybrane 17 czerwca 2016 przez Ehlert
 
Najlepsza
Użyj tego, z czym Ci dobrze. ;) Nie wiem, co konkretnie planujesz z tym działać, ale myślę że najwygodniej będzie dla Ciebie użyć std::bitset lub zwykłej tablicy shortów.

Nie wiem, jak wygląda sprawa przechowywaniem danych w std::bitset, ale sądzę że operacje wyłuskania bitu ze słowa (short tab[]) nie są wiele kosztowniejsze od dostępu do bitu z std::bitset.

Piszesz ten kod na PC?
komentarz 17 czerwca 2016 przez Ehlert Ekspert (212,630 p.)
Tak. Program do adresacji. Dzielenie na podsieci. Itd
komentarz 17 czerwca 2016 przez draghan VIP (106,230 p.)
W takim razie nie przejmowałbym się tak bardzo szybkością działania, chyba że to aplikacja mająca działać w czasie rzeczywistym (application in real time) lub ma to być aplikacja czasu rzeczywistego (real-time application).

Nie warto szukać tak błahych optymalizacji na etapie projektowania systemu. Zaprojektuj most dla tych danych, uniezależnij swój kod od konkretnej implementacji - a w razie zauważalnej niezadowalającej wydajności (w co szczerze wątpię), zmień implementację.
komentarz 17 czerwca 2016 przez Ehlert Ekspert (212,630 p.)
Doskonale rozumiem Twój tok myślenia ale mimo wszystko jak dla mnie jest on za mało zapobiegawczy. :) w tym przypadku wydajność idzie w parze z wygodą przeprowadzania operacji na bitach. Dzięki za dobre rady ;) Pozdrawiam
komentarz 17 czerwca 2016 przez draghan VIP (106,230 p.)

w tym przypadku wydajność idzie w parze z wygodą przeprowadzania operacji na bitach

Nadal nie mogę znaleźć innego wytłumaczenia dla tak pożądanej wydajności, niż działanie w czasie rzeczywistym. Niemniej wybrałbym chyba tablicę liczb - zdaje się być tutaj rozsądnym kompromisem.

Jeszcze jedno pytanie, bo mi to umknęło wcześniej - dlaczego chciałbyś użyć jako danych "nośnych" typu short? Przecież char jest ośmiobitowy, dla IPv4 byłby wystarczający - a sądząc po rozmiarach pozostałych Twoich propozycji, IPv6 nie planujesz obsługiwać.

+1 głos
odpowiedź 17 czerwca 2016 przez ZakosiliMiNeta Nałogowiec (30,910 p.)
Może wrzucić adres IP do unsigned int ? 4 bajty dostajesz i nimi operujesz bez problemu

Podobne pytania

0 głosów
1 odpowiedź 2,021 wizyt
pytanie zadane 5 stycznia 2016 w C i C++ przez Konrad Nabożny Stary wyjadacz (13,460 p.)
0 głosów
1 odpowiedź 116 wizyt
pytanie zadane 26 maja 2018 w Mikrokontrolery przez BlinkyShay Obywatel (1,190 p.)
0 głosów
2 odpowiedzi 1,058 wizyt
pytanie zadane 30 listopada 2020 w C i C++ przez ResCrove Obywatel (1,700 p.)

92,453 zapytań

141,262 odpowiedzi

319,087 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...