graphlogo

Wydział Matematyki i Informatyki

Uniwersytetu Mikołaja Kopernika w Toruniu

1inf 2023/2024 - Programowanie I, LE

[ip5] Adresy internetowe (5)
Języki: c
Limit czasu: 1.0 s
Limit pamięci: 5 MB
Cel
Zadanie na bitowe.


Informacje wprowadzające

W wersji 4 protokołu Internet Protocol (IPv4) adresy reprezentowane są przez 32-bitowe liczby całkowite nieujemne, zwykle podzielone na 4 nieujemne 8-bitowe liczby całkowite (tzw. oktety) rozdzielone kropkami.

W podobny sposób (jako 32-bitowe liczby całkowite nieujemne, podzielone na 4 nieujemne 8-bitowe liczby całkowite (oktety) rozdzielone kropkami) reprezentowane są maski dla tych adresów. Maska o długości n jest wówczas liczbą, której n najbardziej znaczących bitów jest jedynkami, a kolejne 32-n (najmniej znaczących) bitów jest zerami.

Przykładowo maska o długości 24 zapisywana jest jako 255.255.255.0, a maska o długości 26 jako jako 255.255.255.192.

Sieć w protokole IPv4 jest determinowana przez jej adres oraz maskę. Adres sieci musi mieć zera w bitach odpowiadających zerowym bitom sieci maski.

Przykładowo sieć mat.umk.pl posiada adres 158.75.2.0 oraz maskę długości 24 i dlatego zapisujemy ją jako 158.75.2.0/24 lub 158.75.2.0/255.255.255.0.

W sieci o masce długości n mamy 2^{32-n} adresów komputerów. Otrzymujemy je przez zastąpienie w adresie sieci ostatnich 32-n bitów bitami o dowolnych wartościach.

Zadanie 5

Napisz program, który określi, czy adresy z podanej listy znajdują się w tej samej sieci o z góry zadanej długości maski. Program ma wczytać kolejno

  • długość maski,
  • dodatnią liczbę n będącą ilością liczb traktowanych jako adresy sieci (do wczytania),
  • n 32-liczb reprezentujących jako adresy sieci.
Program ma wypisać jako odpowiedź "TAK" lub "NIE".

Przykłady
Wejście Wyjście
24
5
2655715847
2655715846
2655715862
2655715960
2655716070
TAK
26
5
2655715847
2655715846
2655715862
2655715960
2655716070
NIE
Powrót
© 2009-2020 • ZawodyWeb Team
IKS - Inwestycja w Kierunki Strategiczne na Wydziale Matematyki i Informatyki UMK

Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego