Kezdőoldal » Számítástechnika » Programozás » 2014-es emelt informatika...

2014-es emelt informatika érettségiben mit jelent a legalacsonyabban tárolt ip cím?

Figyelt kérdés
Kajak nem bírok rájönni és nem értem, hogy mit kéne kiiratnom

2021. okt. 3. 18:29
 1/2 anonim ***** válasza:
84%
Az IP cím 4 bájt, azaz 0-255-ig terjedő szám. Ezt tudod ábrázolni egy 4 bájtos Integerként úgy, hogy a 4 bájtot egymás mellé teszed. Így kijön egy szám. Ezek közül a legalacsonyabbat kell kikeresned (minimum keresés, a maximum ellenkezője).
2021. okt. 3. 18:35
Hasznos számodra ez a válasz?
 2/2 anonim ***** válasza:
65%

A válaszomban feltételezem, hogy azért a binárist vágod.


Vannak ún. bitműveletek, ami közül a jobbra és a balra shiftelés lesz érdekes, valamint a VAGY. Vegyük a következő 8 biten ábrázolt számot:

00001100 (vagyis 12)

Ha ezt eggyel balra shiftelem, akkor ezt a számot kapom:

00011000 (vagyis 24)

Ha pedig eggyel jobbra shiftelem, akkor pedig:

00000110 (vagyis 6)


Szóval, mint ahogy a kolléga említette, az IP cím 4 darab 8 biten tárolt előjel nélküli számból áll. Például:

127.0.0.1

---------

01111111 (127)

00000000 (0)

00000000 (0)

00000001 (1)


Első lépésként a 8 bites byte adattípusról cast-oljuk (típuskényszerítjük) 32 bites előjel nélküli integerré (unsigned integer). Maga a számok ugyanazok maradnak, csak immáron több helyet foglalnak el a memóriában:

00000000 00000000 00000000 01111111 (127)

00000000 00000000 00000000 00000000 (0)

00000000 00000000 00000000 00000000 (0)

00000000 00000000 00000000 00000001 (1)


Az első számot shifteljük balra 24-gyel, a másodikat 16-tal, a harmadikat pedig 8-cal, az utolsót nem bántjuk (ezeknek most lényegtelen, hogy mi az értéke):

01111111 00000000 00000000 00000000

00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000000

00000000 00000000 00000000 00000001


Most bitenként VAGY-oljük össze az így kapott 32 biten tárolt számokat:

01111111 00000000 00000000 00000001


Tehát amit neked tudni kell:

1) C#-ban a cast-olás 8 bitről 32 bites előjel nélküli számra így néz ki:

byte b = 127;

uint x = (uint)b;


2) Balra shiftelni egy számot így lehet:

uint x = 1;

uint y = x << 1; //[változó] << [hány bittel tolod balra]


3) Két számot pedig összeVAGYolni így lehet:

uint x = 1;

uint y = 2;

uint z = x | y;


A többire merem remélni, hogy rá fogsz jönni.

2021. okt. 4. 00:18
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!